- java.lang.Object
-
- javafx.beans.binding.SetExpression<E>
-
- javafx.beans.binding.SetBinding<E>
-
- 参数类型
-
E
-Set
元素的类型
- All Implemented Interfaces:
-
Iterable<E>
,Collection<E>
,Set<E>
,Binding<ObservableSet<E>>
,Observable
,ObservableObjectValue<E>
,ObservableSetValue<E>
,ObservableValue<E>
,ObservableSet<E>
public abstract class SetBinding<E> extends SetExpression<E> implements Binding<ObservableSet<E>>
提供实现ObservableSet
的Binding
所需的大部分功能的基类。SetBinding
提供了一个简单的无效方案。 扩展类可以通过调用bind(Observable...)
来注册依赖关系。 如果其中一个注册的依赖关系无效,则此SetBinding
被标记为无效。 用unbind(Observable...)
监听依赖关系可以停止。为了提供这个类的具体实现,必须实现方法
computeValue()
,以便根据依赖关系的当前状态来计算该绑定的值。 当get()
被调用无效绑定时被调用。有关可以扩展这个基类的示例,请参阅
DoubleBinding
。- 从以下版本开始:
- JavaFX 2.1
- 另请参见:
-
Binding
,SetExpression
-
-
Property Summary
Properties Type Property 描述 ReadOnlyBooleanProperty
empty
一个布尔属性是true
,如果该集合是空的。ReadOnlyIntegerProperty
size
表示集合大小的整数属性。
-
构造方法摘要
构造方法 Constructor 描述 SetBinding()
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 void
addListener(InvalidationListener listener)
添加一个InvalidationListener
,当Observable
无效时,它将被通知。void
addListener(ChangeListener<? super ObservableSet<E>> listener)
添加一个ChangeListener
,当ObservableValue
的值发生变化时,它将被通知。void
addListener(SetChangeListener<? super E> listener)
添加一个监听器到这个可观察的集合。protected void
bind(Observable... dependencies)
开始观察更改的依赖关系。protected abstract ObservableSet<E>
computeValue()
计算此绑定的当前值。void
dispose()
默认实现为dispose()
,为空。ReadOnlyBooleanProperty
emptyProperty()
一个布尔属性是true
,如果该集合是空的。ObservableSet<E>
get()
返回computeValue()
的结果。ObservableList<?>
getDependencies()
getDependencies()
的默认实现返回一个空的ObservableList
。void
invalidate()
将绑定标记为无效。boolean
isValid()
检查绑定是否有效。protected void
onInvalidating()
如果此绑定变为无效,那么onInvalidating()方法可以被扩展类覆盖。void
removeListener(InvalidationListener listener)
从监听器列表中删除给定的监听器,当Observable
的值变为无效时通知Observable
。void
removeListener(ChangeListener<? super ObservableSet<E>> listener)
从监听器列表中删除给定的监听器,当ObservableValue
的值发生变化时通知ObservableValue
。void
removeListener(SetChangeListener<? super E> listener)
试图从这个可观察的集合中删除一个监听器。ReadOnlyIntegerProperty
sizeProperty()
表示集合大小的整数属性。String
toString()
返回此SetBinding
对象的字符串表示形式。protected void
unbind(Observable... dependencies)
停止观察更改的依赖关系。-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface javafx.beans.value.ObservableValue
getValue
-
-
-
-
Property Detail
-
size
public ReadOnlyIntegerProperty sizeProperty
- Specified by:
-
sizeProperty
在SetExpression<E>
- 另请参见:
-
SetExpression.getSize()
-
empty
public ReadOnlyBooleanProperty emptyProperty
- Specified by:
-
emptyProperty
在SetExpression<E>
- 另请参见:
-
SetExpression.isEmpty()
-
-
方法详细信息
-
sizeProperty
public ReadOnlyIntegerProperty sizeProperty()
描述从类别复制SetExpression
表示集合大小的整数属性。- Specified by:
-
sizeProperty
在SetExpression<E>
- 另请参见:
-
SetExpression.getSize()
-
emptyProperty
public ReadOnlyBooleanProperty emptyProperty()
描述从类复制:SetExpression
一个布尔属性是true
,如果该集合是空的。- Specified by:
-
emptyProperty
在SetExpression<E>
- 另请参见:
-
SetExpression.isEmpty()
-
addListener
public void addListener(InvalidationListener listener)
说明从接口Observable
复制添加一个InvalidationListener
,当Observable
变为无效时,它将被通知。 如果同一个监听器被多次添加,那么它将被多次通知。 也就是说,没有检查确保唯一性。请注意,相同的实际
InvalidationListener
实例可以安全地注册到不同的Observables
。Observable
存储对侦听器的强烈引用,这将阻止侦听器被垃圾回收,并可能导致内存泄漏。 建议您在使用后拨打removeListener
注销一个侦听器,或者使用WeakInvalidationListener
的一个实例来避免这种情况。- Specified by:
-
addListener
在接口Observable
- 参数
-
listener
-listener
注册 - 另请参见:
-
Observable.removeListener(InvalidationListener)
-
removeListener
public void removeListener(InvalidationListener listener)
描述从接口Observable
复制从监听器列表中删除给定的监听器,当Observable
的值变为无效时通知Observable
。如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。
- Specified by:
-
removeListener
在接口Observable
- 参数
-
listener
- 要删除的侦听器 - 另请参见:
-
Observable.addListener(InvalidationListener)
-
addListener
public void addListener(ChangeListener<? super ObservableSet<E>> listener)
说明从接口ObservableValue
复制添加一个ChangeListener
,当ObservableValue
的值更改时,它将被通知。 如果同一个监听器被多次添加,那么它将被多次通知。 也就是说,没有检查确保唯一性。请注意,相同的实际
ChangeListener
实例可以安全地注册到不同的ObservableValues
。ObservableValue
存储对侦听器的强烈引用,这将阻止侦听器被垃圾回收,并可能导致内存泄漏。 建议您在使用后拨打removeListener
注销一个侦听器,或者使用WeakChangeListener
的一个实例来避免这种情况。- Specified by:
-
addListener
在接口ObservableValue<E>
- 参数
-
listener
-listener
注册 - 另请参见:
-
ObservableValue.removeListener(ChangeListener)
-
removeListener
public void removeListener(ChangeListener<? super ObservableSet<E>> listener)
描述从接口ObservableValue
复制从监听器列表中删除给定的监听器,当ObservableValue
的值发生变化时通知ObservableValue
。如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。
- Specified by:
-
removeListener
在接口ObservableValue<E>
- 参数
-
listener
- 要删除的侦听器 - 另请参见:
-
ObservableValue.addListener(ChangeListener)
-
addListener
public void addListener(SetChangeListener<? super E> listener)
说明从接口ObservableSet
复制添加一个监听器到这个可观察的集合。- Specified by:
-
addListener
在接口ObservableSet<E>
- 参数
-
listener
- 用于监听设置更改的侦听器
-
removeListener
public void removeListener(SetChangeListener<? super E> listener)
说明从界面复制:ObservableSet
试图从这个可观察的集合中删除一个监听器。 如果监听者没有附加到此列表中,则不会发生任何事情。- Specified by:
-
removeListener
在接口ObservableSet<E>
- 参数
-
listener
- 要删除的侦听器
-
bind
protected final void bind(Observable... dependencies)
开始观察更改的依赖关系。 如果其中一个依赖关系的值发生变化,则绑定被标记为无效。- 参数
-
dependencies
- 依赖关系观察
-
unbind
protected final void unbind(Observable... dependencies)
停止观察更改的依赖关系。- 参数
-
dependencies
- 停止观察的依赖关系
-
getDependencies
public ObservableList<?> getDependencies()
getDependencies()
的默认实现返回一个空的ObservableList
。- Specified by:
-
getDependencies
在接口Binding<E>
- 结果
-
一个空的
ObservableList
-
get
public final ObservableSet<E> get()
- Specified by:
-
get
在接口ObservableObjectValue<E>
- 结果
- 当前值
-
onInvalidating
protected void onInvalidating()
如果此绑定变为无效,那么onInvalidating()方法可以被扩展类覆盖。 默认实现为空。
-
invalidate
public final void invalidate()
说明从接口Binding
复制将绑定标记为无效。 这迫使下次再次计算Binding
请求。- Specified by:
-
invalidate
在接口Binding<E>
-
isValid
public final boolean isValid()
描述从接口Binding
复制检查绑定是否有效。
-
computeValue
protected abstract ObservableSet<E> computeValue()
计算此绑定的当前值。扩展
SetBinding
必须提供computeValue
的实施。- 结果
- 当前值
-
-