java - Observablelist 和 arraylist,不同的行为

标签 java collections javafx

我正在多重选择模式下使用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/

相关文章:

JavaFX 到 Android

javafx 8,不使用 fxml,scene.lookup 找不到节点

java - Bazel 有详细的日志记录吗?

java - 如何通过命令行向testng xml传递参数

Java 列表作为第一项应始终具有特定值

c# - 通过 MVC Controller 返回序列化为 JSON 的大型集合

java - 错误 : cannot access KObject -- class file for kotlin. jvm.internal.KObject 未找到

Java调用错误的python版本

组合两个 Set 时出现 java.lang.UnsupportedOperationException

java - 有没有办法使用JavaFx制作Windows服务应用程序