javafx listview不爽快?

时间:2012-07-16 11:15:06

标签: listview refresh javafx-2

这是情景:

我有一个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刷新问题。

0 个答案:

没有答案