Spec-Zone.ru › OpenJavaFX 11
Модуль javafx.base
Пакет javafx.beans.value

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

  • Параметры типа:
    T - Тип оборачиваемого значения.
    Все суперинтерфейсы:
    Observable
    Все известные подинтерфейсы:
    Binding<T>, JavaBeanProperty<T>, NumberBinding, NumberExpression, ObservableBooleanValue, ObservableDoubleValue, ObservableFloatValue, ObservableIntegerValue, ObservableListValue<E>, ObservableLongValue, ObservableMapValue<K,​V>, ObservableNumberValue, ObservableObjectValue<T>, ObservableSetValue<E>, ObservableStringValue, Property<T>, ReadOnlyJavaBeanProperty<T>, ReadOnlyProperty<T>, TextInputControl.Content
    Все известные реализующие классы:
    BooleanBinding, BooleanExpression, BooleanProperty, BooleanPropertyBase, DoubleBinding, DoubleExpression, DoubleProperty, DoublePropertyBase, FloatBinding, FloatExpression, FloatProperty, FloatPropertyBase, IntegerBinding, IntegerExpression, IntegerProperty, IntegerPropertyBase, JavaBeanBooleanProperty, JavaBeanDoubleProperty, JavaBeanFloatProperty, JavaBeanIntegerProperty, JavaBeanLongProperty, JavaBeanObjectProperty, JavaBeanStringProperty, ListBinding, ListExpression, ListProperty, ListPropertyBase, LongBinding, LongExpression, LongProperty, LongPropertyBase, MapBinding, MapExpression, MapProperty, MapPropertyBase, NumberExpressionBase, ObjectBinding, ObjectExpression, ObjectProperty, ObjectPropertyBase, ObservableValueBase, ReadOnlyBooleanProperty, ReadOnlyBooleanPropertyBase, ReadOnlyBooleanWrapper, ReadOnlyDoubleProperty, ReadOnlyDoublePropertyBase, ReadOnlyDoubleWrapper, ReadOnlyFloatProperty, ReadOnlyFloatPropertyBase, ReadOnlyFloatWrapper, ReadOnlyIntegerProperty, ReadOnlyIntegerPropertyBase, ReadOnlyIntegerWrapper, ReadOnlyJavaBeanBooleanProperty, ReadOnlyJavaBeanDoubleProperty, ReadOnlyJavaBeanFloatProperty, ReadOnlyJavaBeanIntegerProperty, ReadOnlyJavaBeanLongProperty, ReadOnlyJavaBeanObjectProperty, ReadOnlyJavaBeanStringProperty, ReadOnlyListProperty, ReadOnlyListPropertyBase, ReadOnlyListWrapper, ReadOnlyLongProperty, ReadOnlyLongPropertyBase, ReadOnlyLongWrapper, ReadOnlyMapProperty, ReadOnlyMapPropertyBase, ReadOnlyMapWrapper, ReadOnlyObjectProperty, ReadOnlyObjectPropertyBase, ReadOnlyObjectWrapper, ReadOnlySetProperty, ReadOnlySetPropertyBase, ReadOnlySetWrapper, ReadOnlyStringProperty, ReadOnlyStringPropertyBase, ReadOnlyStringWrapper, SetBinding, SetExpression, SetProperty, SetPropertyBase, SimpleBooleanProperty, SimpleDoubleProperty, SimpleFloatProperty, SimpleIntegerProperty, SimpleListProperty, SimpleLongProperty, SimpleMapProperty, SimpleObjectProperty, SimpleSetProperty, SimpleStringProperty, SimpleStyleableBooleanProperty, SimpleStyleableDoubleProperty, SimpleStyleableFloatProperty, SimpleStyleableIntegerProperty, SimpleStyleableLongProperty, SimpleStyleableObjectProperty, SimpleStyleableStringProperty, StringBinding, StringExpression, StringProperty, StringPropertyBase, StyleableBooleanProperty, StyleableDoubleProperty, StyleableFloatProperty, StyleableIntegerProperty, StyleableLongProperty, StyleableObjectProperty, StyleableStringProperty
    public interface ObservableValue<T>
    extends Observable
    Объект, который оборачивает значение и позволяет наблюдать за ним на предмет изменений. В общем случае этот интерфейс не следует реализовывать напрямую, а следует использовать один из его подинтерфейсов (ObservableBooleanValue и т.д.).

    Значение ObservableValue можно запросить с помощью getValue().

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

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

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

    К объекту ObservableValue можно прикрепить два типа слушателей: InvalidationListener для прослушивания событий инвалидации и ChangeListener для прослушивания событий изменения.

    Важное примечание: прикрепление ChangeListener принудительно выполняет жадные вычисления, даже если реализация ObservableValue поддерживает ленивые вычисления.

    С:
    JavaFX 2.0
    См. также:
    ObservableBooleanValue, ObservableDoubleValue, ObservableFloatValue, ObservableIntegerValue, ObservableLongValue, ObservableNumberValue, ObservableObjectValue, ObservableStringValue
  • Краткое описание методов

    Все методыМетоды экземпляраАбстрактные методы
    Модификатор и тип Метод Описание
    void addListener​(ChangeListener<? super T> listener)
    Добавляет ChangeListener, который будет уведомляться всякий раз, когда значение ObservableValue изменяется.
    T getValue()
    Возвращает текущее значение этого ObservableValue
    void removeListener​(ChangeListener<? super T> listener)
    Удаляет заданного слушателя из списка слушателей, которые уведомляются всякий раз, когда значение ObservableValue изменяется.
    • Наследованные методы от интерфейса javafx.beans.Observable

      addListener, removeListener
  • Подробное описание методов

    • addListener

      void addListener​(ChangeListener<? super T> listener)
      Добавляет ChangeListener, который будет уведомляться всякий раз, когда значение ObservableValue изменяется. Если один и тот же слушатель добавляется более одного раза, он будет уведомляться более одного раза. То есть, проверка на уникальность не выполняется.

      Обратите внимание, что один и тот же экземпляр ChangeListener может безопасно регистрироваться для разных ObservableValues.

      ObservableValue хранит сильную ссылку на слушателя, что предотвратит сборку мусора слушателя и может привести к утечке памяти. Рекомендуется либо отменить регистрацию слушателя, вызвав removeListener после использования, либо использовать экземпляр WeakChangeListener, чтобы избежать этой ситуации.

      Параметры:
      listener - Слушатель для регистрации
      Исключения:
      NullPointerException - если слушатель равен null
      См. также:
      removeListener(ChangeListener)
    • removeListener

      void removeListener​(ChangeListener<? super T> listener)
      Удаляет заданного слушателя из списка слушателей, которые уведомляются всякий раз, когда значение ObservableValue изменяется.

      Если заданный слушатель не был ранее зарегистрирован (т. е. он никогда не добавлялся), то этот вызов метода является пустым. Если он был ранее добавлен, то он будет удален. Если он был добавлен более одного раза, то будет удален только первый случай.

      Параметры:
      listener - Слушатель для удаления
      Исключения:
      NullPointerException - если слушатель равен null
      См. также:
      addListener(ChangeListener)
    • getValue

      T getValue()
      Возвращает текущее значение этого ObservableValue
      Возвращает:
      Текущее значение

© 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