java.lang.Object java.beans.PropertyChangeSupport
public class PropertyChangeSupport
这是一个实用工具类,支持绑定 (bound) 属性的 bean 可以使用该类。可以使用此类的实例作为 bean 的成员字段,并将各种工作委托给它。 此类是可序列化的。在对它进行序列化时,它将保存(并恢复)本身可序列化的所有侦听器。在序列化期间,将跳过所有不可序列化的侦听器。
构造方法摘要 | |
---|---|
PropertyChangeSupport(Object sourceBean) 构造一个 PropertyChangeSupport 对象。 |
方法摘要 | |
---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener) 向侦听器列表添加一个 PropertyChangeListener。 |
void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener) 为指定的属性向侦听器列表中添加一个 PropertyChangeListener。 |
void |
fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue) 以 boolean 值形式报告所有已注册侦听器的绑定索引属性更新。 |
void |
fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue) 以 int 值形式报告所有已注册侦听器的绑定索引属性更新。 |
void |
fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue) 报告所有已注册侦听器的绑定 (bound) 索引 (indexed) 属性更新。 |
void |
firePropertyChange(PropertyChangeEvent evt) 对所有已注册侦听器激发一个现有 PropertyChangeEvent。 |
void |
firePropertyChange(String propertyName, boolean oldValue, boolean newValue) 以 boolean 值形式报告所有已注册侦听器的绑定属性更新。 |
void |
firePropertyChange(String propertyName, int oldValue, int newValue) 以 int 值形式报告所有已注册侦听器的绑定属性更新。 |
void |
firePropertyChange(String propertyName, Object oldValue, Object newValue) 报告所有已注册侦听器的绑定属性更新。 |
PropertyChangeListener[] |
getPropertyChangeListeners() 返回使用 addPropertyChangeListener() 添加到此 PropertyChangeSupport 对象中的所有侦听器组成的数组。 |
PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName) 返回与指定属性相关联的所有侦听器的列表。 |
boolean |
hasListeners(String propertyName) 检查是否存在特定属性的任何侦听器,包括那些已在所有属性上注册的侦听器。 |
void |
removePropertyChangeListener(PropertyChangeListener listener) 从侦听器列表移除一个 PropertyChangeListener。 |
void |
removePropertyChangeListener(String propertyName, PropertyChangeListener listener) 为特定属性移除一个 PropertyChangeListener。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public PropertyChangeSupport(Object sourceBean)
PropertyChangeSupport
对象。
sourceBean
- 作为所有事件的源提供的 bean。
方法详细信息 |
---|
public void addPropertyChangeListener(PropertyChangeListener listener)
listener
为 null,则不会抛出异常并且不执行操作。
listener
- 要添加的 PropertyChangeListener
public void removePropertyChangeListener(PropertyChangeListener listener)
listener
多次添加到同一事件源,则在被移除之后,它至少将被通知一次。如果
listener
为 null,或者从未被添加,则不会抛出异常并且不执行操作。
listener
- 要移除的 PropertyChangeListener
public PropertyChangeListener[] getPropertyChangeListeners()
如果已经使用指定属性添加一些侦听器,则返回的数组将是 PropertyChangeListener 和 PropertyChangeListenerProxy
的混合物。如果调用方法对区别侦听器感兴趣,那么它必须测试每个元素,以查看该元素是否是一个 PropertyChangeListenerProxy
,然后执行强制转换并检查该参数。
PropertyChangeListener[] listeners = bean.getPropertyChangeListeners(); for (int i = 0; i < listeners.length; i++) { if (listeners[i] instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy)listeners[i]; if (proxy.getPropertyName().equals("foo")) { // proxy is a PropertyChangeListener which was associated // with the property named "foo" } } }
PropertyChangeListener
,如果没有添加侦听器,则返回一个空数组
PropertyChangeListenerProxy
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
propertyName
或
listener
为 null,则不会抛出异常并且不执行操作。
propertyName
- 要侦听的属性的名称。
listener
- 要添加的 PropertyChangeListener
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
listener
多次添加到指定属性的同一事件源,则在被移除之后,它至少将被通知一次。如果
propertyName
为 null,则不会抛出异常并且不执行操作。如果
listener
为 null,或者从不为指定属性添加 pcl,则不抛出异常并不执行任何操作。
propertyName
- 已被侦听的属性的名称。
listener
- 要移除的 PropertyChangeListener
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
propertyName
- 将被侦听的属性的名称
PropertyChangeListener
。如果没有添加这样的侦听器,或者
propertyName
为 null,则返回一个空数组。
public void firePropertyChange(String propertyName, Object oldValue, Object newValue)
这只是一个用来包装获取 PropertyChangeEvent
值的更一般 firePropertyChange 方法的便捷包装器。
propertyName
- 被更改属性的编程名称。
oldValue
- 属性的旧值。
newValue
- 属性的新值。
public void firePropertyChange(String propertyName, int oldValue, int newValue)
这只是一个用来包装获取 Object 值的更常见 firePropertyChange 方法的便捷包装器。
propertyName
- 被更改属性的编程名称。
oldValue
- 属性的旧值。
newValue
- 属性的新值。
public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
这只是一个用来包装获取 Object 值的更常见 firePropertyChange 方法的便捷包装器。
propertyName
- 被更改属性的编程名称。
oldValue
- 属性的旧值。
newValue
- 属性的新值。
public void firePropertyChange(PropertyChangeEvent evt)
evt
- PropertyChangeEvent 对象。
public void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
如果旧值和新值相等并且都是非 null 的,则不会激发事件。
这只是一个用来包装获取 PropertyChangeEvent
值的更一般 firePropertyChange 方法的便捷包装器。
propertyName
- 被更改属性的编程名称。
index
- 被更改属性元素的索引。
oldValue
- 属性的旧值。
newValue
- 属性的新值。
public void fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
int
值形式报告所有已注册侦听器的绑定索引属性更新。
如果旧值和新值相等,则不会激发事件。
这只是一个用来包装获取 Object 值的更常见 fireIndexedPropertyChange 方法的便捷包装器。
propertyName
- 被更改属性的编程名称。
index
- 被更改属性元素的索引。
oldValue
- 属性的旧值。
newValue
- 属性的新值。
public void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
boolean
值形式报告所有已注册侦听器的绑定索引属性更新。
如果旧值和新值相等,则不会激发事件。
这只是一个用来包装获取 Object 值的更常见 fireIndexedPropertyChange 方法的便捷包装器。
propertyName
- 被更改属性的编程名称。
index
- 被更改属性元素的索引。
oldValue
- 属性的旧值。
newValue
- 属性的新值。
public boolean hasListeners(String propertyName)
propertyName
为 null,则只检查所有属性上注册的侦听器。
propertyName
- 属性名。