这是我遇到的问题:我有sqlite3_get_table()
5 ArrayList
个问题。这些JComboBox
每个都包含相同的五个选项:JComboBox
。然后,我通过"1", "2", "3", "4", and "5"
循环将ArrayList
JComboBox
JFrame
添加到for
。但是,由于某些奇怪的原因,每当我在其中一个JComboBox
中选择一个选项时,JComboBox
的其余部分也会选择该原因。 第一次截图是 JFrame
在首次执行时的状态:
此第三个屏幕截图显示所有JComboBox
已更改为所选输入。
这是我的代码:
class Foo {
JFrame frame = new JFrame("Add person(s)");
ArrayList<JComboBox> comboArray = new ArrayList<JComboBox>();
String[] floors = {"1", "2", "3", "4", "5"};
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>(floors);
public void go() {
for (int x = 0; x < 5; x++) {
comboArray.add(new JComboBox<String>(model)); //Adds numbers 1-5 to a new JComboBox, and the JComboBox is then added to comboArray
frame.add(comboArray.get(x)); //Adds each JComboBox to the frame
}
frame.setResizable(false);
...
frame.setVisible(true);
}
public static void main (String [] args) {
go();
}
}
答案 0 :(得分:4)
comboArray.add(new JComboBox<String>(model));
您要为每个组合框添加相同的ComboBoxModel
。
您需要为每个组合框创建单独的模型。
所以循环中的代码应该是:
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>(floors);
comboArray.add(new JComboBox<String>(model));
现在每个组合框都包含一个单独的模型,但每个模型都包含相同的值。