首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要Bindings.equals ObservableList

需要Bindings.equals ObservableList
EN

Stack Overflow用户
提问于 2015-04-16 00:26:58
回答 1查看 550关注 0票数 2

我对JavaFX属性和绑定很陌生。所以我要做的是从BooleanBinding中得到一个Bindings.equals()并传递两个ObservableList,我不知道在这里使用什么样的列表,我需要这个列表来处理ListView。我在JavaDocs上查看了列表属性的迷宫,这里没有任何帮助。

我需要将两个列表绑定到一个BooleanBinding

代码语言:javascript
复制
BooleanBinding listsEqual = Bindings.equal(list1, list2);

我还需要这两个列表在ListView中工作

代码语言:javascript
复制
ListView listView = new ListView();
listView.setItems(list1);

这两个不同列表的目的是让一个列表成为当前的列表,另一个列表是原始的列表,以查看第一个列表是否已经更改。这并不重要,但我知道我需要两个。

我的问题是我找不到与Bindings.equal()ListView同时工作的list实现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 00:41:02

使用

代码语言:javascript
复制
ObservableList<?> list1 = ... ;
ObservableList<?> list2 = ... ;

BooleanBinding listsEqual = Bindings.createBooleanBinding(() -> Objects.equals(list1, list2), 
    list1, list2);

例如:

代码语言:javascript
复制
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");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29663285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档