jTextFields和JScrollPane的列表不';t show/javaswing
我试图创建一个窗口,显示文本字段和 如果文本字段的数量很大,那么我想添加一个滚动条。 我正在使用GridLayout。 问题是我添加了Jlist和scroller的面板没有显示任何内容,列表和scroller都没有显示。下面是我的部分代码jTextFields和JScrollPane的列表不';t show/javaswing,java,swing,Java,Swing,我试图创建一个窗口,显示文本字段和 如果文本字段的数量很大,那么我想添加一个滚动条。 我正在使用GridLayout。 问题是我添加了Jlist和scroller的面板没有显示任何内容,列表和scroller都没有显示。下面是我的部分代码 //Label JLabel numberOfTxt = new JLabel("Please enter the number in every TextField");
//Label
JLabel numberOfTxt = new JLabel("Please enter the number in every TextField");
int n = 11; //A random number of TextFields
firstPanel.add(numberOfTxt, BorderLayout.NORTH); //Add label to panel
JList textFieldList = new JList(); //Create a list of TextFields
for (int i = 0; i < n; i++) {
//Add TextFields to list
JTextField textField = new JTextField();
textField.setBounds(0, 0, 6, 0);
textFieldList.add(textField);
System.out.println("textFieldList" + textFieldList);
}
textFieldList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
textFieldList.setLayoutOrientation(JList.HORIZONTAL_WRAP);
textFieldList.setVisibleRowCount(8);
//Create scroller
JScrollPane listScroller = new JScrollPane(textFieldList);
listScroller.setBounds(0, 20, 600, 600);
//Create layout for panel where the textfields will be added
if (n % 2 != 0) {
n = n + 1;
}
thirdPanel.setLayout(new GridLayout(n / 2, 2, 10, 6));
thirdPanel.add(textFieldList);
thirdPanel.setVisible(true);
//ContentPane has BoxLayout
contentPane.add(firstPanel);
contentPane.add(thirdPanel);
contentPane.repaint();
window.pack();
}
window.revalidate();
}
});
//标签
JLabel numberOfTxt=新的JLabel(“请在每个文本字段中输入数字”);
int n=11//随机数目的文本字段
添加(numberOfTxt,BorderLayout.NORTH)//将标签添加到面板
JList textFieldList=新JList()//创建文本字段列表
对于(int i=0;i
JList
不是这样工作的。如果您确实需要JList
的TextFields
,您应该使用ListCellRenderer
(您可能不需要,请参见第3页)textFieldList
添加到listcroller
和thirdPanel
。可能,您应该替换thirdPanel.add(textFieldList)代码>通过thirdPanel.add(listScroller)代码>
thirdPanel
使用GridLayout
,但只有一个控件添加到它。您应该直接将TextField
添加到thirdPanel
(更简单的方法),或者让JList
管理它们首先,谢谢你的快速回答。关于3。您建议我让第三面板布局为空,并将gridlayout添加到Jlist?否。您不应该首先将
TextField
s添加到Jlist
。这完全是胡说八道。尝试直接将TextField
s添加到thirdPanel
。嗯?您不应该将JTextFields添加到JLists,因为这没有意义。你到底想在这里干什么?