Java 问题:从GUI更改ArrayList中的值
我有一个名为conditionList的ArrayList,它存储条件名称。 无论何时添加/编辑或删除一个,我的GUI上的列表都不会更新 你可以在下面看到,我使用了两个模型。。。一个名为condListModel的DefaultListModel和一个名为conditionModel的DefaultComboxModel 我下面的代码是针对editCondition()方法的,在这个阶段,文本已经在GUI上更改,并且正在这里提交。在我的GUI上,在我提交更改后,ComboBox和JList更改没有问题,因此我确信模型更改是正确的 然而,我的问题是:当我通过序列化保存ArrayList条件列表,然后将其加载回时,更改就消失了。因此,我认为我的代码在更改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更改没
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)。干杯的人解决了我的问题,认为这只是太多时间编码的愚蠢结果再次感谢