簡體   English   中英

如何在JPanel內部使用JList,以便可以設置列表的邊界?

[英]How do I use JList inside of JPanel So I can set the bounds of the list?

我在Java中使用JLists遇到麻煩。 我看過有關如何使用它們的視頻教程,但是它們都以某種布局使用它們。 我想擁有它,因此“ setPreferedLayout”為null,並且我可以使用setBounds方法來確定列表和按鈕在窗口上的位置。 當我這樣做時,我做了諸如frame.add(list)或panel。(list)之類的東西添加到我的面板中,它沒有顯示在窗口中,但是我的按鈕卻顯示。

我有這樣的事情:

    //DECLARATION
    JFrame f = new JFrame("main Window");
    JPanel p = new JPanel();

    int WIDTH = 800;
    int HEIGHT = 650;

    public static JList mainList;
    String[] mainArray = {"one","two","three"};

    //INIT
    public mainClass() {
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(p);
        f.setVisible(true);
        p.setLayout(null);
        p.setPreferredSize( new Dimension(WIDTH,HEIGHT) );
        f.pack();
        p.setVisible(true);

        p.setFocusable(true);

        System.setProperty("sun.java2d.opengl","true");
        Thread thr1 = new Thread (r1);
        thr1.start();

        mainList = new JList(mainArray);
        mainList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        mainList.setSelectedIndex(0);
        mainList.setVisibleRowCount(3);
        JScrollPane listScrollPane = new JScrollPane(mainList);
    }

再次,我試圖創建一個JList,我可以將其放置在任意位置。 那基本上就是我想要得到的。 每當我嘗試以它的工作方式進行調試時,Jbuttons(設置其邊界並將其添加到面板)在我運行程序時都不會顯示...

public mainClass() {
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        mainList = new JList(mainArray);
        mainList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        mainList.setSelectedIndex(0);
        mainList.setVisibleRowCount(3);
        JScrollPane listScrollPane = new JScrollPane(mainList);
        p.add(listScrollPane);
        f.add(p);
        p.setPreferredSize( new Dimension(WIDTH,HEIGHT) );        
        f.pack();        
        f.setVisible(true);
        p.setFocusable(true);

        System.setProperty("sun.java2d.opengl","true");
        Thread thr1 = new Thread (r1);
        thr1.start();


    }

這應該工作,您永遠不會將列表添加到面板,也可以將其設置為pack()可見,那將是行不通的。 您應該做的最后一件事是設置“可見”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM