java.lang.Objectjava.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 - 属性名。