将ListView绑定到ObservableSet

时间:2015-11-24 19:10:42

标签: java user-interface javafx observable

我想知道是否有办法将ObservableSet绑定到ListViewObservableList双向转换为ObservableSet

1 个答案:

答案 0 :(得分:3)

一般情况下,完全不可能这样做,因为列表和集合具有不同的功能(在排序列表时集合是无序的;列表可以包含重复但是集合不能)。

您可以确保const显示ListView中的元素,其代码类似于以下内容:

ObservableSet

如果可以独立于集合操作ObservableSet<String> set = FXCollections.observableSet(); ListView<String> listView = new ListView<>(); set.addListener((Change<? extends String> c) -> { if (c.wasAdded()) { listView.getItems().add(c.getElementAdded()); } if (c.wasRemoved()) { listView.getItems().remove(c.getElementRemoved()); } }); ,那么您可以使用ListView注册(某种程度上)类似的侦听器,并相应地更新集合。