2

这是场景:

我有一个充满“Koe”对象的 listView,在 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 的数据就会加载到另一个窗格中,用户可以在其中编辑它并按下 Save 按钮。当按下 Save 按钮时,TextFields 中的值将保存到 Koe 对象中。

...
k.setLabID(txtLabID.getText());
...

然而,问题是当用户编辑 Koe 对象的 LabID 时,ListView 不会在 ListView 中显示新的 LabID,直到 ListView 被刷新(作为测试,我尝试在用户点击 Save 按钮时添加一个虚拟 Koe 对象强制刷新,然后它似乎工作)。

我做了一些关于它的阅读,我知道 ListView 应该链接到 SimpleStringProperty 对象。但是,当用户点击 Save 按钮时,setLabID() 方法会更新 Koe 的 LabID(它是一个 SimpleStringProperty 对象)?这与 toString() 方法有关吗?因为这被用来在 listView 中显示 Koe 的 labID?但是话又说回来,这个 toString() 方法是链接到 labID SimpleStringProperty 的吗?

如您所见,我有点困惑。虽然,一切正常,但这只是刷新 ListView 的问题,我还没有解决。

4

0 回答 0