- java.lang.Object
-
- javafx.beans.binding.MapExpression<K,V>
-
- javafx.beans.binding.MapBinding<K,V>
-
- 参数类型
-
K
- 关键元素的类型 -
V
- 值元素的类型
- All Implemented Interfaces:
-
Map<K,V>
,Binding<ObservableMap<K,V>>
,Observable
,ObservableMapValue<K,V>
,ObservableObjectValue<K>
,ObservableValue<K>
,ObservableMap<K,V>
public abstract class MapBinding<K,V> extends MapExpression<K,V> implements Binding<ObservableMap<K,V>>
基类,提供大多数的实现所需的功能Binding
的的ObservableMap
。MapBinding
提供了一个简单的无效方案。 扩展类可以通过调用bind(Observable...)
来注册依赖关系。 如果其中一个注册的依赖关系无效,则此MapBinding
被标记为无效。 用unbind(Observable...)
听取依赖关系可以停止。为了提供这个类的具体实现,必须实现方法
computeValue()
,以便根据依赖关系的当前状态计算该绑定的值。 当get()
被调用无效绑定时调用。有关可以扩展该基类的示例,请参阅
DoubleBinding
。- 从以下版本开始:
- JavaFX 2.1
- 另请参见:
-
Binding
,MapExpression
-
-
Property Summary
Properties Type Property 描述 ReadOnlyBooleanProperty
empty
一个布尔属性是true
,如果地图是空的。ReadOnlyIntegerProperty
size
表示地图大小的整数属性。
-
构造方法摘要
构造方法 Constructor 描述 MapBinding()
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 void
addListener(InvalidationListener listener)
添加一个InvalidationListener
,当Observable
变得无效时,它将被通知。void
addListener(ChangeListener<? super ObservableMap<K,V>> listener)
添加一个ChangeListener
,当ObservableValue
的值发生变化时,它将被通知。void
addListener(MapChangeListener<? super K,? super V> listener)
添加一个监听器到这个可观察的地图。protected void
bind(Observable... dependencies)
开始观察更改的依赖关系。protected abstract ObservableMap<K,V>
computeValue()
计算此绑定的当前值。void
dispose()
默认实现为dispose()
,为空。ReadOnlyBooleanProperty
emptyProperty()
一个布尔属性是true
,如果地图是空的。ObservableMap<K,V>
get()
返回computeValue()
的结果。ObservableList<?>
getDependencies()
getDependencies()
的默认实现返回一个空的ObservableList
。void
invalidate()
将绑定标记为无效。boolean
isValid()
检查绑定是否有效。protected void
onInvalidating()
如果此绑定变为无效,那么onInvalidating()方法可以被扩展类覆盖。void
removeListener(InvalidationListener listener)
从监听器列表中删除给定的监听器,每当Observable
的值变为无效时通知Observable
。void
removeListener(ChangeListener<? super ObservableMap<K,V>> listener)
从监听器列表中删除给定的监听器,当ObservableValue
的值发生变化时通知ObservableValue
。void
removeListener(MapChangeListener<? super K,? super V> listener)
试图从这个可观察的地图中删除一个听众。ReadOnlyIntegerProperty
sizeProperty()
表示地图大小的整数属性。String
toString()
返回此MapBinding
对象的字符串表示形式。protected void
unbind(Observable... dependencies)
停止观察更改的依赖关系。-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, entry, equals, forEach, getOrDefault, hashCode, merge, of, of, of, of, of, of, of, of, of, of, of, ofEntries, putIfAbsent, remove, replace, replace, replaceAll
-
Methods inherited from class javafx.beans.binding.MapExpression
asString, clear, containsKey, containsValue, entrySet, get, getSize, getValue, isEmpty, isEqualTo, isNotEqualTo, isNotNull, isNull, keySet, mapExpression, put, putAll, remove, size, valueAt, valueAt, values
-
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
在MapExpression<K,V>
- 另请参见:
-
MapExpression.getSize()
-
empty
public ReadOnlyBooleanProperty emptyProperty
- Specified by:
-
emptyProperty
在MapExpression<K,V>
- 另请参见:
-
MapExpression.isEmpty()
-
-
方法详细信息
-
sizeProperty
public ReadOnlyIntegerProperty sizeProperty()
描述从类别复制:MapExpression
表示地图大小的整数属性。- Specified by:
-
sizeProperty
在MapExpression<K,V>
- 另请参见:
-
MapExpression.getSize()
-
emptyProperty
public ReadOnlyBooleanProperty emptyProperty()
描述从类复制:MapExpression
一个布尔属性是true
,如果地图是空的。- Specified by:
-
emptyProperty
在MapExpression<K,V>
- 另请参见:
-
MapExpression.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 ObservableMap<K,V>> listener)
说明从接口ObservableValue
复制添加一个ChangeListener
,当ObservableValue
的值更改时,它将被通知。 如果同一个监听器被多次添加,那么它将被多次通知。 也就是说,没有检查确保唯一性。请注意,相同的实际
ChangeListener
实例可以安全地注册到不同的ObservableValues
。ObservableValue
存储对侦听器的强烈引用,这将阻止侦听器被垃圾回收,并可能导致内存泄漏。 建议您在使用后通过调用removeListener
取消注册监听器,或使用WeakChangeListener
的实例避免此情况。- Specified by:
-
addListener
在接口ObservableValue<K>
- 参数
-
listener
- 要注册的听众 - 另请参见:
-
ObservableValue.removeListener(ChangeListener)
-
removeListener
public void removeListener(ChangeListener<? super ObservableMap<K,V>> listener)
描述从接口ObservableValue
复制从监听器列表中删除给定的监听器,当ObservableValue
的值发生变化时通知ObservableValue
。如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。
- Specified by:
-
removeListener
在接口ObservableValue<K>
- 参数
-
listener
- 要删除的侦听器 - 另请参见:
-
ObservableValue.addListener(ChangeListener)
-
addListener
public void addListener(MapChangeListener<? super K,? super V> listener)
说明从界面ObservableMap
复制添加一个监听器到这个可观察的地图。- Specified by:
-
addListener
在接口ObservableMap<K,V>
- 参数
-
listener
- 用于监听列表更改的监听器
-
removeListener
public void removeListener(MapChangeListener<? super K,? super V> listener)
说明从接口ObservableMap
复制试图从这个可观察的地图中删除一个听众。 如果听众没有附加到这个地图,没有任何反应。- Specified by:
-
removeListener
在接口ObservableMap<K,V>
- 参数
-
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<K>
- 结果
-
一个空的
ObservableList
-
get
public final ObservableMap<K,V> get()
- Specified by:
-
get
在接口ObservableObjectValue<K>
- 结果
- 当前值
-
onInvalidating
protected void onInvalidating()
如果此绑定变为无效,那么onInvalidating()方法可以被扩展类覆盖。 默认实现为空。
-
invalidate
public final void invalidate()
描述从接口Binding
复制将绑定标记为无效。 这迫使重新计算Binding
下一次请求的值。- Specified by:
-
invalidate
在接口Binding<K>
-
isValid
public final boolean isValid()
说明从接口Binding
复制检查绑定是否有效。
-
computeValue
protected abstract ObservableMap<K,V> computeValue()
计算此绑定的当前值。扩展
MapBinding
必须提供computeValue
的实现。- 结果
- 当前值
-
-