我有一个我想从tableview中删除所有行的情况。因此,我在按钮的setOnAction lambda表达式中执行了以下代码。但是这个代码对我不起作用。TableView的行都没有删除。
for (int i = data.size() - 1; i >= 0; i--) {
tableView.getItems().remove(i);
}
数据是一个fxcollections.observablearraylist,我的类和tableView是tableView的实例。
但是,我能够从同一tableview成功删除所选行。我使用ContextMenu的Menuitem的SetOnAction句柄功能的以下代码进行了操作。一定是我错过的简单的东西。
theSelectedObject = tableView.getSelectionModel().getSelectedItem();
if (theSelectedObject != null) {
int row = data.indexOf(theSelectedObject);
data.remove(row);
}
那么,为什么第一个方法不起作用?我想念什么?
是。这个问题得到了解决。这是因为代码创建了两个不同的列表,并且删除在错误的列表上运行。
当列表绑定到表视图时,我认为我可以简单地使用数据模型,而不是tableview,以便更改机制来处理更新。
非常感谢您的有用评论!