这是情景:
我有一个listView填充'Koe'对象,在listView中,'Koe'对象按其LabID属性列出。
public class Koe {
private final SimpleIntegerProperty koeID = new SimpleIntegerProperty();
private final SimpleStringProperty labID = new SimpleStringProperty("");
...
//GETTERS
public int getKoeID(){
return koeID.get();
}
public String getLabID(){
return labID.get();
}
...
//SETTERS
public void setKoeID(int iKoeID) {
koeID.set(iKoeID);
}
public void setLabID(String sLabID){
labID.set(sLabID);
}
...
@Override
public String toString(){
return "" + labID.get();
}
现在,一旦选择了Koe,Koe的数据就会加载到另一个窗格中,用户可以在其中编辑它并按下“保存”按钮。按下“保存”按钮时,TextFields中的值将保存到Koe对象中。
...
k.setLabID(txtLabID.getText());
...
然而问题是,当用户编辑Koe对象的LabID时,ListView不会在ListView中显示新的LabID,直到ListView被刷新(作为测试,我尝试在用户点击时添加虚拟Koe对象“保存”按钮强制刷新,然后它似乎工作了。)
我做了一些关于它的阅读,我理解ListView应该链接到SimpleStringProperty对象。但是,当用户点击Save按钮时,setLabID()方法会更新Koe的LabID(这是一个SimpleStringProperty对象)? 这与toString()方法有关吗?因为这用于在listView中显示Koe的labID?但是,再次,这个toString()方法链接到labID SimpleStringProperty?
正如你所看到的,我有点困惑。虽然一切正常,但这只是我还无法解决的ListView刷新问题。