JavaFX 2.1 TableView刷新项
我有这个常见的问题,看来是这样。重置项目后,我的表格视图不会刷新我的项目。我检查了数据,这是新的数据。
我尝试了多种互联网解决方案,但没有成功。
无法重置所有列,因为它会额外增加一个空一(不知道为什么),并且调整大小会中断。
我的表不可编辑。新数据已更改。
如果更改项目的顺序并且行更改(:|),则刷新数据。
我只是没有想法。
目前,刷新代码非常简单。
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(...); //e.g. in a loop...
要么
obsList.removeAll(obsList);
FXCollections.copy(obsList, someSourceList)
以上是 JavaFX 2.1 TableView刷新项 的全部内容, 来源链接: utcz.com/qa/429356.html