我正在多重选择模式下使用javafx listview,特别是删除列表中选定项目的方法。
带有可观察列表的方法
list.getItems()
.removeAll(
list.getSelectionModel()
.getSelectedItems());
带有数组列表的方法
list.getItems()
.removeAll(new ArrayList<Object>(
list.getSelectionModel()
.getSelectedItems()));
为什么这些实现会产生不同的结果? arraylist 实现仅删除选定的项目。 observablelist 实现会删除第一个选定项之后的所有内容,无论它是否被选定。
这可能是 javafx removeAll 方法中的错误吗?
最佳答案
ObservableList
由实际模型支持,因此随着 ListView 的变化而条目被删除。通过首先将选定的元素复制到 ArrayList,您可以消除问题:创建的 ArrayList 不依赖于 ListView ,因此在 期间不会更改删除全部
操作。
关于java - Observablelist 和 arraylist,不同的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314800/