Хобрук: Ваш путь к мастерству в программировании

Нужно Bindings.equals ObservableList

Я новичок в свойствах и привязках 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 одновременно.

16.04.2015

Ответы:


1

Использовать

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");
16.04.2015
Новые материалы

Введение в контекст React
В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

Это оно
Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

Базовое руководство по переносу концепций обучения в глубокое обучение
Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

C в C.R.U.D с использованием React-Redux
Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

5 обязательных элементов современного инструмента конвейера данных
В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..