我对JavaFX属性和绑定很陌生。所以我要做的是从BooleanBinding中得到一个Bindings.equals()并传递两个ObservableList,我不知道在这里使用什么样的列表,我需要这个列表来处理ListView。我在JavaDocs上查看了列表属性的迷宫,这里没有任何帮助。
我需要将两个列表绑定到一个BooleanBinding
BooleanBinding listsEqual = Bindings.equal(list1, list2);我还需要这两个列表在ListView中工作
ListView listView = new ListView();
listView.setItems(list1);这两个不同列表的目的是让一个列表成为当前的列表,另一个列表是原始的列表,以查看第一个列表是否已经更改。这并不重要,但我知道我需要两个。
我的问题是我找不到与Bindings.equal()和ListView同时工作的list实现。
发布于 2015-04-16 00:41:02
使用
ObservableList<?> list1 = ... ;
ObservableList<?> list2 = ... ;
BooleanBinding listsEqual = Bindings.createBooleanBinding(() -> Objects.equals(list1, list2),
list1, list2);例如:
ListView<String> listView = new ListView<>();
ObservableList<String> list = FXCollections.observableArrayList();
BooleanBinding listsEqual = Bindings.createBooleanBinding(() ->
Objects.equals(listView.getItems(), list),
listView.getItems(), list);
listsEqual.addListener((obs, wereEqual, areNowEqual) -> System.out.println("Lists equal? "+areNowEqual));
System.out.println("Adding to Listview: One");
listView.getItems().add("One");
System.out.println("Adding to list: One");
list.add("One");
System.out.println("Adding to Listview: Two");
listView.getItems().add("Two");
System.out.println("Adding to Listview: Three");
listView.getItems().add("Three");
System.out.println("Adding to list: Two");
list.add("Two");
System.out.println("Adding to list: Three");
list.add("Three");https://stackoverflow.com/questions/29663285
复制相似问题