我有一种情况,我想删除TableView中的所有行。所以我在按钮的setOnAction lambda表达式中做了以下代码。但是这段代码对我不起作用。没有删除tableView的行。
theSelectedObject = tableView.getSelectionModel().getSelectedItem();
if (theSelectedObject != null) {
int row = data.indexOf(theSelectedObject);
data.remove(row);
}
其中data是带有我的类的FXCollections.observableArrayList,tableView是TableView的一个实例。
但是,我能够从同一个tableView中成功删除所选行。我是使用ContextMenu的MenuItem的setOnAction句柄函数中的以下代码完成的。一定是我错过的简单。
{
"records":[
{
"id": 0,
"flair": "LowerFlair",
"flairtext": "Give it up!",
"min": 0,
"max": 0.200
},
{
"id": 1,
"flair": "LowerMiddleFlair",
"flairtext": "You might need more batting practice",
"min": 0.201,
"max": 0.249
}
]
}
那么,为什么第一种方法不起作用?我错过了什么?
答案 0 :(得分:0)
是。这个问题已经解决了。这是因为代码创建了两个不同的列表,并且删除操作在错误的列表上。
当列表绑定到表视图时,我认为我可以简单地处理数据模型而不是TableView,因此更改机制将处理更新。
非常感谢有用的评论!