Spec-Zone.ru › OpenJavaFX 24

Пакет javafx.beans.binding

package javafx.beans.binding

Предоставляет классы, которые создают и работают с Binding, вычисляющим значение, зависящее от одного или нескольких источников.

Характеристики привязок

Привязки собираются из одного или нескольких источников, обычно называемых их зависимостями. Привязка отслеживает изменения своих зависимостей и обновляет свое собственное значение в соответствии с изменениями зависимостей.

Практически все привязки, определенные в этой библиотеке, требуют реализации Observable для своих зависимостей. Уже предоставлены два типа реализаций: свойства в пакете javafx.beans.property и наблюдаемые коллекции (ObservableList и ObservableMap). Привязки также реализуют Observable и могут снова служить источниками для других привязок, что позволяет создавать очень сложные привязки из простых.

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

API высокого уровня и API низкого уровня

API привязок примерно разделен на две части: API привязок высокого уровня и API привязок низкого уровня. API привязок высокого уровня позволяет создавать простые привязки удобным способом. Определение привязки с помощью API высокого уровня должно быть простым, особенно при использовании IDE, которая предоставляет автодополнение. К сожалению, у него есть свои ограничения, и на этом этапе вступает в игру API низкого уровня. Опытные разработчики Java могут использовать API низкого уровня для определения привязок, если функциональность API высокого уровня недостаточна или для повышения производительности. Основные цели API низкого уровня — быстрое выполнение и небольшой размер занимаемой памяти.

Ниже приведен пример того, как можно использовать оба API. Предположим, что у нас есть четыре экземпляра DoubleProperty a, b, c и d, мы можем определить привязку, которая вычисляет a*b + c*d с помощью API высокого уровня, например, так:

NumberBinding result = Bindings.add (a.multiply(b), c.multiply(d));

Определение той же привязки с помощью API низкого уровня можно выполнить следующим образом:

 
 DoubleBinding foo = new DoubleBinding() {

     {
         super.bind(a, b, c, d);
     }

     @Override
     protected double computeValue() {
         return a.getValue() * b.getValue() + c.getValue() * d.getValue();
     }
 };
 
 
Пакет Описание
javafx.beans
Пакет javafx.beans содержит интерфейсы, определяющие наиболее общий вид наблюдаемости.
javafx.beans.property
Пакет javafx.beans.property определяет только для чтения свойства, свойства для записи, а также ряд их реализаций.
javafx.beans.value
Пакет javafx.beans.value содержит два основных интерфейса ObservableValue и WritableValue и все его под-интерфейсы.
Класс Описание
Binding<T>
Binding вычисляет значение, которое зависит от одного или нескольких источников.
Bindings
Bindings — вспомогательный класс со множеством утилитных функций для создания простых связей.
BooleanBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding значения типа boolean.
BooleanExpression
BooleanExpression — это ObservableBooleanValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
DoubleBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding значения типа double.
DoubleExpression
DoubleExpression — это ObservableDoubleValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
FloatBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding значения типа float.
FloatExpression
FloatExpression — это ObservableFloatValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
IntegerBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding значения типа int.
IntegerExpression
IntegerExpression — это ObservableIntegerValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
ListBinding<E>
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding списка ObservableList.
ListExpression<E>
ListExpression — это ObservableListValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
LongBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding значения типа long.
LongExpression
LongExpression — это ObservableLongValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
MapBinding<K,V>
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding карты ObservableMap.
MapExpression<K,V>
MapExpression — это ObservableMapValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
NumberBinding
Интерфейс-метка для всех Bindings, которые оборачивают числовое значение.
NumberExpression
NumberExpression — это ObservableNumberValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
NumberExpressionBase
NumberExpressionBase содержит удобные методы для генерации связей в стиле fluent, общие для всех подклассов NumberExpression.
ObjectBinding<T>
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding объекта Object.
ObjectExpression<T>
ObjectExpression — это ObservableObjectValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
SetBinding<E>
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding набора ObservableSet.
SetExpression<E>
SetExpression — это ObservableSetValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
StringBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding строкового значения String.
StringExpression
StringExpression — это ObservableStringValue плюс дополнительные удобные методы для генерации связей в стиле fluent.
When
Начальная точка для связи, вычисляющей условное выражение.

Отправить сообщение об ошибке или предложить улучшение
Авторское право © 2008, 2025, Oracle и/или его аффилированные лица. Все права защищены.

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API