Spec-Zone.ru › OpenJavaFX 8

Пакет javafx.beans.binding

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

См.: Описание

Резюме интерфейсов
Интерфейс Описание
Binding<T>
A Binding вычисляет значение, зависящее от одного или нескольких источников.
NumberBinding
Интерфейс маркировки для всех привязок, которые оборачивают числовое значение.
NumberExpression
A NumberExpression — это ObservableNumberValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
Резюме классов
Класс Описание
Bindings
Bindings — вспомогательный класс с множеством полезных функций для создания простых привязок.
BooleanBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding булевого значения.
BooleanExpression
A BooleanExpression — это ObservableBooleanValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
DoubleBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding вещественного значения.
DoubleExpression
A DoubleExpression — это ObservableDoubleValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
FloatBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding значения с плавающей точкой.
FloatExpression
A FloatExpression — это ObservableFloatValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
IntegerBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding целого значения.
IntegerExpression
A IntegerExpression — это ObservableIntegerValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
ListBinding<E>
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding списка.
ListExpression<E>
A ListExpression — это ObservableListValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
LongBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding значения типа long.
LongExpression
A LongExpression — это ObservableLongValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
MapBinding<K,V>
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding карты.
MapExpression<K,V>
A MapExpression — это ObservableMapValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
NumberExpressionBase
A NumberExpressionBase содержит удобные методы для создания привязок в стиле fluent, общие для всех подклассов NumberExpression.
ObjectBinding<T>
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding объекта.
ObjectExpression<T>
A ObjectExpression — это ObservableObjectValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
SetBinding<E>
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding множества.
SetExpression<E>
A SetExpression — это ObservableSetValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
StringBinding
Базовый класс, предоставляющий большую часть функциональности, необходимой для реализации Binding строкового значения.
StringExpression
A StringExpression — это ObservableStringValue плюс дополнительные удобные методы для создания привязок в стиле fluent.
When
Начальная точка для привязки, вычисляющей условное выражение.

Описание пакета javafx.beans.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();
    }
};

© 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