需要 Bindings.equals ObservableList
Need to Bindings.equals ObservableList
我是 JavaFX 属性和绑定的新手。所以我想做的是从 Bindings.equals()
得到一个 BooleanBinding
并传递两个 ObservableList
。我不确定在这里使用哪种列表,我需要该列表才能使用 ListView
。我浏览了 JavaDocs 上的列表属性迷宫,但在这里没有任何帮助。
我需要将两个列表绑定到 BooleanBinding
:
BooleanBinding listsEqual = Bindings.equal(list1, list2);
我还需要这两个列表才能在 ListView
:
中工作
ListView listView = new ListView();
listView.setItems(list1);
两个不同列表的目的是让一个列表为当前版本,另一个为原始版本,以查看第一个列表是否已更改。这不是很重要,但我知道我需要其中两个。
我的问题是我找不到同时适用于 Bindings.equal()
和 ListView
的列表实现。
使用
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");
我是 JavaFX 属性和绑定的新手。所以我想做的是从 Bindings.equals()
得到一个 BooleanBinding
并传递两个 ObservableList
。我不确定在这里使用哪种列表,我需要该列表才能使用 ListView
。我浏览了 JavaDocs 上的列表属性迷宫,但在这里没有任何帮助。
我需要将两个列表绑定到 BooleanBinding
:
BooleanBinding listsEqual = Bindings.equal(list1, list2);
我还需要这两个列表才能在 ListView
:
ListView listView = new ListView();
listView.setItems(list1);
两个不同列表的目的是让一个列表为当前版本,另一个为原始版本,以查看第一个列表是否已更改。这不是很重要,但我知道我需要其中两个。
我的问题是我找不到同时适用于 Bindings.equal()
和 ListView
的列表实现。
使用
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");