Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 导致JComboxes相互锁定的JComboxes的ArrayList_Java_Swing_Arraylist_Jcombobox - Fatal编程技术网

Java 导致JComboxes相互锁定的JComboxes的ArrayList

Java 导致JComboxes相互锁定的JComboxes的ArrayList,java,swing,arraylist,jcombobox,Java,Swing,Arraylist,Jcombobox,这就是我遇到的问题:我有一个ArrayList的5个JComboBox。这些JComboBox都包含相同的五个选项:“1”、“2”、“3”、“4”和“5”。然后,我通过for循环将JComboBox的ArrayList添加到JFrame。然而,出于某种奇怪的原因,每当我在一个JComboBox中选择一个选项时,JComboBox的其余部分也会选择该原因第一个屏幕截图是第一次执行时处于其状态的JFrame: 这是用户选择另一个菜单项的屏幕截图: 第三个屏幕截图显示所有JComboBox都已更改为所

这就是我遇到的问题:我有一个
ArrayList
的5个
JComboBox
。这些
JComboBox
都包含相同的五个选项:
“1”、“2”、“3”、“4”和“5”
。然后,我通过
for
循环将
JComboBox
ArrayList
添加到
JFrame
。然而,出于某种奇怪的原因,每当我在一个
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();
}

}
class-Foo{
JFrame=新JFrame(“添加人员”);
ArrayList comboArray=新的ArrayList();
字符串[]floors={“1”、“2”、“3”、“4”、“5”};
DefaultComboxModel=新的DefaultComboxModel(楼层);
公开作废go(){
对于(int x=0;x<5;x++){
comboArray.add(new JComboBox(model));//将数字1-5添加到新的JComboBox,然后将JComboBox添加到comboArray
frame.add(comboArray.get(x));//将每个JComboBox添加到帧中
}
frame.setresizeable(false);
...
frame.setVisible(true);
}
公共静态void main(字符串[]args){
go();
}
}
现在,每个组合框都包含一个单独的模型,但每个模型都包含相同的值

现在,每个组合框都包含一个单独的模型,但每个模型都包含相同的值

comboArray.add(new JComboBox<String>(model)); 
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>(floors);
comboArray.add(new JComboBox<String>(model));