我在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();
}
这应该工作,你从来没有添加你的列表面板,你设置可见比包(),这是行不通的。你应该做的最后一件事是设置可见