我在刷新时也遇到了类似的问题。我的解决方案是将的操作限制在
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)



