Интерфейс Observable
- Все известные подинтерфейсы:
-
Binding<T>,JavaBeanProperty<T>,NumberBinding,NumberExpression,ObservableArray<T>,ObservableBooleanValue,ObservableDoubleValue,ObservableFaceArray,ObservableFloatArray,ObservableFloatValue,ObservableIntegerArray,ObservableIntegerValue,ObservableList<E>,ObservableListValue<E>,ObservableLongValue,ObservableMap<K,,V> ObservableMapValue<K,,V> ObservableNumberValue,ObservableObjectValue<T>,ObservableSet<E>,ObservableSetValue<E>,ObservableStringValue,ObservableValue<T>,Platform.Preferences,Property<T>,ReadOnlyJavaBeanProperty<T>,ReadOnlyProperty<T>,TextInputControl.Content,WritableListValue<E>,WritableMapValue<K,,V> WritableSetValue<E>
- Все известные реализующие классы:
-
BooleanBinding,BooleanExpression,BooleanProperty,BooleanPropertyBase,DoubleBinding,DoubleExpression,DoubleProperty,DoublePropertyBase,FilteredList,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,ModifiableObservableListBase,NumberExpressionBase,ObjectBinding,ObjectExpression,ObjectProperty,ObjectPropertyBase,ObservableArrayBase,ObservableListBase,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,SortedList,StringBinding,StringExpression,StringProperty,StringPropertyBase,StyleableBooleanProperty,StyleableDoubleProperty,StyleableFloatProperty,StyleableIntegerProperty,StyleableLongProperty,StyleableObjectProperty,StyleableStringProperty,TransformationList
public interface Observable
Реализация интерфейса Observable может поддерживать ленивые вычисления, что означает, что содержимое не пересчитывается сразу после изменений, а лениво – в следующий раз, когда оно запрашивается. Все привязки и свойства в этой библиотеке поддерживают ленивые вычисления.
Реализации этого класса должны стремиться генерировать как можно меньше событий, чтобы не тратить слишком много времени в обработчиках событий. Реализации в этой библиотеке отмечают себя как недействительные, когда происходит первое событие недействительности. Они не генерируют больше событий недействительности до тех пор, пока их значение не будет пересчитано и снова станет действительным.
- С момента:
- JavaFX 2.0
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addListener |
Добавляет слушателя InvalidationListener, который будет уведомляться всякий раз, когда Observable становится недействительным. |
void |
removeListener |
Удаляет указанного слушателя из списка слушателей, которые уведомляются всякий раз, когда значение Observable становится недействительным. |
default Subscription |
subscribe |
Создаёт Subscription для данного Observable, который вызывает invalidationSubscriber всякий раз, когда он становится недействительным. |
Подробное описание методов
addListener
void addListener(InvalidationListener listener)
InvalidationListener, который будет уведомляться всякий раз, когда Observable становится недействительным. Если один и тот же слушатель добавляется более одного раза, он будет уведомляться более одного раза. То есть, не проверяется уникальность. Обратите внимание, что один и тот же экземпляр InvalidationListener может быть безопасно зарегистрирован для разных Observables.
Observable хранит сильную ссылку на слушателя, что предотвращает сборку мусора слушателя и может привести к утечке памяти. Рекомендуется либо отменить регистрацию слушателя, вызвав removeListener после использования, либо использовать экземпляр WeakInvalidationListener, чтобы избежать этой ситуации.
- Параметры:
-
listener- Слушатель для регистрации - Исключения:
-
NullPointerException- если слушатель равен null - См. также:
removeListener
void removeListener(InvalidationListener listener)
Observable становится недействительным. Если данный слушатель ранее не был зарегистрирован (т.е. он никогда не добавлялся), то это вызов метода является пустой операцией. Если он был ранее добавлен, то он будет удален. Если он был добавлен более одного раза, то будет удален только первый.
- Параметры:
-
listener- Слушатель для удаления - Исключения:
-
NullPointerException- если слушатель равен null - См. также:
subscribe
default Subscription subscribe(Runnable invalidationSubscriber)
Subscription на этом Observable, который вызывает invalidationSubscriber всякий раз, когда он становится недействительным. Предоставленный подписчик аналогичен InvalidationListener без параметра Observable. Если один и тот же подписчик подписывается более одного раза, он будет уведомляться более одного раза. То есть, не проверяется уникальность. Обратите внимание, что один и тот же экземпляр подписчика может быть безопасно подписан для различных Observables.
Также обратите внимание, что при подписке на Observable с более длительным жизненным циклом, чем у подписчика, подписчик должен быть отписан, когда он больше не нужен, так как в противном случае подписка будет препятствовать сбору мусора подписчика.
- Параметры:
-
invalidationSubscriber-Runnable, который нужно вызвать, когда это значение становится недействительным, не может бытьnull - Возвращает:
Subscription, который может быть использован для отмены этой подписки, никогда неnull- Исключения:
-
NullPointerException- если подписчикnull - С момента:
- 21
- См. также:
© 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.