[英]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.