我想点击某个按钮时清除ListView中的所有内容.我试图通过索引删除它,但它给了我例外.我没有完全得到ListView的SelectionModel.以下是我的尝试:
asiLogsListView.getSelectionModel().selectAll();
ObservableList<Integer> indices = asiLogsListView.getSelectionModel().getSelectedIndices();
for(int index : indices) {
asiLogsListView.getSelectionModel().getSelectedItems().remove(index);
}
Run Code Online (Sandbox Code Playgroud)
要么
asiLogsListView.getSelectionModel().getSelectedItems().removeAll(indices);
Run Code Online (Sandbox Code Playgroud)
Jam*_*s_D 13
要清除a中的所有项目ListView,只需执行
asiLogsListView.getItems().clear();
Run Code Online (Sandbox Code Playgroud)
如果要清除选择,请执行
asiLogsListView.getSelectionModel().clearSelection();
Run Code Online (Sandbox Code Playgroud)
棘手的是删除所有选定的项目ListView:
List<Integer> selectedItemsCopy = new ArrayList<>(asiLogsListView.getSelectionModel().getSelectedItems());
asiLogsListView.getItems().removeAll(selectedItemsCopy);
Run Code Online (Sandbox Code Playgroud)
您的代码看起来是试图清除的选择,因为你试图删除所有从元素selectionModel的selectedItems列表.问题是,当您删除每个项目时,其余项目的索引会发生变化,因此您最终会删除错误的项目,并可能最终得到ArrayIndexOutOfBoundsExceptions(如果最终的项目数量少于所选项目的最大索引项目).
| 归档时间: |
|
| 查看次数: |
22840 次 |
| 最近记录: |