Java 问题:从GUI更改ArrayList中的值

Java 问题:从GUI更改ArrayList中的值,java,swing,arraylist,defaultlistmodel,listselectionlistener,Java,Swing,Arraylist,Defaultlistmodel,Listselectionlistener,我有一个名为conditionList的ArrayList,它存储条件名称。 无论何时添加/编辑或删除一个,我的GUI上的列表都不会更新 你可以在下面看到,我使用了两个模型。。。一个名为condListModel的DefaultListModel和一个名为conditionModel的DefaultComboxModel 我下面的代码是针对editCondition()方法的,在这个阶段,文本已经在GUI上更改,并且正在这里提交。在我的GUI上,在我提交更改后,ComboBox和JList更改没

我有一个名为conditionList的ArrayList,它存储条件名称。 无论何时添加/编辑或删除一个,我的GUI上的列表都不会更新

你可以在下面看到,我使用了两个模型。。。一个名为condListModel的DefaultListModel和一个名为conditionModel的DefaultComboxModel

我下面的代码是针对editCondition()方法的,在这个阶段,文本已经在GUI上更改,并且正在这里提交。在我的GUI上,在我提交更改后,ComboBox和JList更改没有问题,因此我确信模型更改是正确的

然而,我的问题是:当我通过序列化保存ArrayList条件列表,然后将其加载回时,更改就消失了。因此,我认为我的代码在更改ArrayList(命名条件列表)中的字符串值时存在问题,有人可以看一下,看看您是否注意到了问题吗

String conString = jListCondition.getSelectedValue().toString(); 

    for(String c: conditionList)
    {
        if(conString.compareTo(c) == 0)
        {
            String temp = entConName.getText();
            c = temp;
            //edit the Condition jList model
            int x = condListModel.indexOf(conString);
            condListModel.setElementAt(temp, x);
            jListCondition.setModel(condListModel);
            //edit the Condition comboBox model
            int i = conditionModel.getIndexOf(conString);
            conditionModel.insertElementAt(temp, i);
            conditionModel.removeElement(conString);
            entCondition.setModel(conditionModel);


            //reset buttons
            editConConfirm.setEnabled(false);
            editCon.setEnabled(false);
            deleteCon.setEnabled(false);
            entConName.setText("");
            addCon.setEnabled(true);
        }
    }

c=temp看起来像是一个错误的代码。它实际上什么都没做。它将变量“c”重新指定为与temp相同的值,但实际上不会更改存储在“条件列表”中的“c”的值。还有,为什么你要在条件列表上迭代然后做“if(conString.compareTo(c)”,而你可以完全摆脱循环,只做conditionList.indexOf(conString)。干杯的人解决了我的问题,认为这只是太多时间编码的愚蠢结果再次感谢