JavaFX 2.1 TableView刷新项目

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我有这个共同的问题,因为它似乎是。我重置它们后,我的表格视图不会刷新我的项目。我检查了数据,这是新的。

我尝试了互联网的多种解决方案,但没有成功

无法重置所有列,因为它添加了一个空的额外(不知道为什么),并且调整大小刚刚打破。

我的表格不可编辑。新数据已更改。

如果更改项目的排序并且行更改(:|),数据将刷新。

我只是没有想法而离开。

目前刷新代码非常简单。

ObservableList<User> data = FXCollections.observableArrayList(User.getResellers());
reseller_table.setItems(data);

新数据再次正确。当我对tableView进行选择时,它会返回新的正确的Item。

提问于
用户回答回答于

我有一个类似的问题。我的解决方案是将ObservableList上的操作限制为使用bind()正确工作的操作。

假设ObservableList obsList是TableView的基础列表。

然后 obsList.clear()(继承自java.util.List <>)不会正确更新 tableView。

还呼吁setItem(obsList)无法正常工作,以触发刷新...但是...

obsList.removeAll(obsList)(被ObservableList覆盖)工作正常,因为它正确地触发了changeEvent :-)

用完全新的内容重新填充列表然后按如下方式工作:

  • obsList.removeAll(obsList);
  • obsList.add(...); //例如在循环中...

要么

  • obsList.removeAll(obsList);
  • FXCollections.copy(obsList,someSourceList)
用户回答回答于

解决方法:

 tableView.getColumns().get(0).setVisible(false);
 tableView.getColumns().get(0).setVisible(true);

扫码关注云+社区