Spec-Zone.ru › OpenJavaFX 21

Пакет javafx.beans.binding

package javafx.beans.binding

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

Характеристики связей

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

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

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

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

API связей примерно разделен на две части: API связей высокого уровня и API связей низкого уровня. API связей высокого уровня позволяет создавать простые связи удобным способом. Определение связи с помощью API высокого уровня должно быть простым, особенно при использовании среды разработки, которая предоставляет автодополнение кода. К сожалению, это имеет свои ограничения, и в этом случае вступает в действие 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 целого значения.
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
Интерфейс разметки для всех привязок, которые оборачивают числовое значение.
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 строкового значения.
StringExpression
StringExpression является ObservableStringValue плюс дополнительные удобные методы для генерации привязок в стиле fluent.
When
Начальная точка для привязки, которая вычисляет тернарное выражение.

© 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