JavaFXListView不刷新?
这是一个场景: 我有一个充满“Koe”对象的listView,在listView中,“Koe”对象按其LabID属性列出JavaFXListView不刷新?,listview,refresh,javafx-2,Listview,Refresh,Javafx 2,这是一个场景: 我有一个充满“Koe”对象的listView,在listView中,“Koe”对象按其LabID属性列出 public class Koe { private final SimpleIntegerProperty koeID = new SimpleIntegerProperty(); private final SimpleStringProperty labID = new SimpleStringProperty(""); ... //GETTERS public in
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的数据将加载到另一个窗格中,用户可以在其中编辑数据并按下保存按钮。按下保存按钮时,文本字段中的值将保存到Koe对象
...
k.setLabID(txtLabID.getText());
...
然而,问题是,当用户编辑Koe对象的LabID时,ListView在刷新ListView之前不会在ListView中显示新的LabID(作为测试,当用户点击Save按钮强制刷新时,我尝试添加一个虚拟Koe对象,然后它似乎可以工作)
我读了一些关于它的书,我知道ListView应该链接到SimpleStringProperty对象。但是,当用户点击Save按钮时,setLabID()方法会更新Koe的LabID(它是SimpleStringProperty对象)?
这与toString()方法有关吗?这是用来在listView中显示Koe的labID的吗?但是,这个toString()方法还是链接到labID SimpleStringProperty
如你所见,我有点困惑。尽管一切正常,但只是刷新ListView的问题我还没有解决。Hi-Uluk,我为labid添加了一个SimplePropertyString getter,但我仍然不知道如何将其连接到ListView?我了解它是如何与TableView(TableColumn->setCellValueFactory)一起工作的,但我没有找到ListView的方法?有没有用Java或FXML管理的示例代码?请参阅。虽然这是关于ComboBox的,但同样的(cellFactory)也可以应用于ListView。您可以认为ListView中只有一列,因此不需要cellValueFactory,或者实际上隐式地有一列。我尝试添加您提到的cellFactory,但仍然不起作用。当我按下“保存”按钮保存Koe的数据时,updateItem()方法没有被触发。这些值存储在ListView中的Koe对象中,但是ListView(图形)没有更新。嗨,Uluk,我为labid添加了一个SimplePropertyString getter,但是我仍然不知道如何将其连接到ListView?我了解它是如何与TableView(TableColumn->setCellValueFactory)一起工作的,但我没有找到ListView的方法?有没有用Java或FXML管理的示例代码?请参阅。虽然这是关于ComboBox的,但同样的(cellFactory)也可以应用于ListView。您可以认为ListView中只有一列,因此不需要cellValueFactory,或者实际上隐式地有一列。我尝试添加您提到的cellFactory,但仍然不起作用。当我按下“保存”按钮保存Koe的数据时,updateItem()方法没有被触发。这些值存储在ListView的Koe对象中,但ListView(图形)没有更新。