JCombobox和JTextfield
我正努力根据组合框中给定值之一显示一些jtextfield。JCombobox和JTextfield
因此,我将有一个下拉菜单,让我们说1到4.如果用户选择数字3,则会显示3个文本字段。我用一些数字创建了jcombobox。但我不知道如何实现这一点。如果我没有记错的话,我需要使用
ItemEvent.SELECTED
我想我需要创建JTextField的对象,将提供给JcomboBox的的ItemListener对象的引用。
任何帮助将不胜感激。
我已经添加到了我的课:
// aOption is the combobox I declared
aOptionComboBox.setModel(new DefaultComboBoxModel(new String[]{"1","2","3"}));
public void itemStateChanged(ItemEvent event) {
String num = (String)aOptionComboBox.getSelectedItem();
int num1 = Integer.parseInt(num);
JTextField[] textfields = new JTextField[num1];
for (int i = 0; i < num1; i++)
{
textfields[i] = new JTextField("Field");
getContentPane().add(textfields[i]);
textfields[i].setBounds(200, 90, 100, 25);
}
}
我是在正确的轨道?
使用组合框上的getSelectedItem()。这将产生一个字符串或一个整数(取决于你如何实现它)。接下来使用for循环来确定JTextField的数量并将它们存储在数组中。
int amount = myJComboBox.getSelectedItem();
JTextField[] textfields = new JTextField[amount];
for (int i = 0; i < amount; i++) {
textfields[i] = new JTextField("awesome");
this.add(textfields[i]);
}
这样,您可以轻松存储文本字段并将其添加到面板。
一些添加的信息。
textfield-array必须在eventListener之外访问,所以你必须在你的类中实现它。这样整个班级都可以使用它。
我已经添加到了我的课: 公共无效itemStateChanged(一个ItemEvent事件){ /* -a选项是我宣布 aOptionComboBox.setModel(新DefaultComboBoxModel组合框(新的String [] { “1”,” 2" , “3”})); */ String num =(String)aOptionComboBox.getSelectedItem(); int num1 = Integer.parseInt(num); JTextField [] textfields = new JTextField [num1]; (int i = 0; i
@nothingme请将该代码编辑到您的问题(并使用代码格式)。目前它是不可读的。 – 2012-03-02 06:25:21
*“我在正确的轨道上吗?”*可能不是,如果代码使用'setBounds'。 ***使用布局***。此外,为了更快提供更好的帮助,请发布[SSCCE](http://sscce.org/)。 – 2012-03-02 06:27:05
当您尝试时发生了什么:-)提示:您可能想要删除先前添加的所有字段。另外:如果这是家庭作业,请标记为 – kleopatra 2012-03-02 10:48:24
“我在正确的轨道上?”,答案是肯定你是错误的轨道上。由于您的for循环内部,由@AndrewThompson非常建议您,不要使用** setBounds **。但假设你仍然使用它,并不是所有你创建的'JTextFields'都放在另一个顶部,在同一个位置。那么你怎么看你的'JFrame'有多少? – 2012-03-02 11:47:50