我有一个共同的问题,就像它看起来的那样。重置项目后,我的表视图不会刷新它们。我已经检查了数据,这是新的。
我尝试了互联网上的多种解决方案,但都没有成功。
无法重置所有列,因为它添加了一个空的额外列(不知道为什么),并且调整大小只是中断。
我的表不是editable。新数据已更改。
如果我更改了项目的排序,则会刷新数据,并且行也会更改(:|)。
我就是毫无头绪。
目前,刷新代码非常简单。
ObservableList<User> data = FXCollections.observableArrayList(User.getResellers());
reseller_table.setItems(data);
同样,新数据是正确的。当我对tableView进行选择时,它会返回新的正确项。
发布于 2012-10-05 06:56:47
我在刷新方面也遇到了类似的问题。我的解决方案是将ObservableList
上的操作限制为那些可以在bind()
上正常工作的操作。
假设ObservableList obsList
是TableView
的底层列表。
然后
obsList.clear()
(继承自java.util.List<>
)将无法正确更新TableView
,但是。
还调用setItem(obsList)
to not work来触发refresh...but...
obsList.removeAll(obsList)
(被ObservableList
覆盖)在中工作得很好,因为它正确地触发了changeEvent。
然后用全新的内容重新填充列表,如下所示:
obsList.removeAll(obsList);
obsList.add(...); //e.g. in a loop...
或
obsList.removeAll(obsList);
FXCollections.copy(obsList, someSourceList)
发布于 2012-09-27 11:45:16
解决方法:
tableView.getColumns().get(0).setVisible(false);
tableView.getColumns().get(0).setVisible(true);
发布于 2016-09-24 06:37:13
由于您可以使用JavaFX 8u60
(假设tableView
是TableView类的一个实例):
tableView.refresh();
从文档中:
调用refresh()会强制TableView控件重新创建并重新填充填充控件的可视边界所需的单元格。换句话说,这会强制TableView更新它向用户显示的内容。这在基础数据源以TableView本身不能观察到的方式进行更改的情况下非常有用。
https://stackoverflow.com/questions/11065140
复制相似问题