如何在JPanel中使用JList呢?我可以设置列表的边界



我在Java中使用JLists有麻烦。我看过如何使用它们的视频教程,但他们都是用某种布局来使用它们的。我想有它,所以"setPreferedLayout"是空的,我可以使用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();

    }

这应该工作,你从来没有添加你的列表面板,你设置可见比包(),这是行不通的。你应该做的最后一件事是设置可见

最新更新