我有一个名为conditionList的ArrayList,它存储条件名称。 无论何时添加/编辑或删除一个,我的GUI上的列表都不会更新。
您可以在下面看到我使用2个模型...一个名为condListModel的DefaultListModel和一个名为conditionModel的DefaultComboBoxModel。
我在下面的代码是针对方法editCondition(),在这个阶段,文本已经在GUI上更改,并在此处提交。在我的GUI上,在提交更改后,ComboBox和JList没有任何问题,所以我确定模型更改是正确的。
然而我的问题是:当我通过序列化保存ArrayList conditionList,然后将其加载回来时,更改就消失了。所以我认为我的代码中有更改ArrayList(名为conditionList)中的字符串值的问题,任何人都可以查看是否发现问题
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);
}
}