T.M. SoftStudio

feci quod potui, faciant meliora potentes

Интерфейс Property<T>

Интерфейс Property<T> расширяет интерфейсы ReadOnlyProperty<T> и javafx.beans.value.WritableValue<T> и обеспечивает для свойств компонентов JavaFX Beans не только их чтение, но и запись и связывание.

Связывание означает синхронизацию значения свойства со значением другого объекта и может быть двух типов – однонаправленным и двунаправленным.

При однонаправленном связывании изменение значения объекта приводит к изменению значения свойства, но не наоборот, а при двунаправленном связывании синхронизация работает в двух направлениях.

Объектом, с которым связывается свойство компонента JavaFX Beans, в случае однонаправленного связывания выступает объект ObservableValue, в случае двунаправленного связывания – объект Property.

После однонаправленного связывания свойство компонента JavaFX Beans уже нельзя изменить иначе как изменив объект ObservableValue, с которым оно связано. Кроме того, свойство компонента JavaFX Beans может иметь только одно однонаправленное связывание.

При двунаправленном связывании ограничение состоит в том, что как свойство компонента JavaFX Beans, так и объект Property<T>, с которым свойство связывается, должны быть одного типа T.

Запись свойств компонентов JavaFX Beans обеспечивает интерфейс WritableValue<T>, а связывание – набор следующих методов:

  • Метод void bind(ObservableValue<? extends T> observable) – создает однонаправленное связывание для данного свойства, при котором изменение значения объекта ObservableValue приводит к изменению значения данного свойства.

  • Метод void unbind() – удаляет однонаправленное связывание данного свойства.

  • Метод boolean isBound() – возвращает true, если данное свойство имеет связывание.

  • Метод void bindBidirectional(Property<T> other) – создает двунаправленное связывание, при котором изменение значения объекта Property приводит к изменению значения данного свойства и наоборот.

  • Метод void unbindBidirectional(Property<T> other) – удаляет двунаправленное связывание.

Пакет javafx.beans.property предоставляет набор классов-реализаций интерфейсов ReadOnlyProperty<T> и Property<T> для различных типов данных: Boolean, Double, Float, Integer, Long, Object, String, List, Map, Set.
Классы пакета javafx.beans.property, обеспечивающие реализацию интерфейсов ReadOnlyProperty<T> и Property<T> для различных типов данных, являются также расширениями классов пакета javafx.beans.binding, предоставляющих методы для генерации выражений связывания, результат которых синхронизирован со значением JavaFX Beans свойства.