public class PropertyChangeSupport extends Object implements Serializable
PropertyChangeEvent
s听众和派遣他们。您可以使用这个类的一个实例作为您的豆的成员字段,并将这些类型的工作委托给它。的
PropertyChangeListener
可以注册为所有属性或属性指定的名字。
这里是PropertyChangeSupport
用法的一个例子,遵循的规则和建议放在™JavaBeans规范:
公共课mybean {私人最终propertychangesupport电脑=新PropertyChangeSupport(本);公共无效addpropertychangelistener(propertychangelistener听众){这pcs.addpropertychangelistener(听众);}公共无效removepropertychangelistener(propertychangelistener听众){这pcs.removepropertychangelistener(听众);}私有字符串值;公共字符串getvalue() {返回this.value;}公共无效值(字符串价值){字符串属性的旧值= this.value;this.value =价值;这个pcs.firepropertychange(“价值”属性的旧值,价值);}[…]}
一个PropertyChangeSupport
实例是线程安全的。
这个类是可序列化的。当它被序列化将保存(恢复)任何听众本身是可序列化的。任何非序列化的听众会跳过序列化期间。
Constructor and Description |
---|
PropertyChangeSupport(Object sourceBean)
构建了一个
PropertyChangeSupport 对象。
|
Modifier and Type | Method and Description |
---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
添加一个propertychangelistener的监听器列表。
|
void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
添加一个特定的属性propertychangelistener。
|
void |
fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
向已注册的已注册的已注册的侦听器的布尔绑定索引属性更新报告,以跟踪指定名称的所有属性或属性的更新。
|
void |
fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
向已注册的已注册的已注册的侦听器属性更新的整数绑定索引属性更新,以跟踪指定名称的所有属性或属性的更新。
|
void |
fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
向已注册的已注册的已注册的已绑定索引属性更新的侦听器,以跟踪所有属性或具有指定名称的属性的更新。
|
void |
firePropertyChange(PropertyChangeEvent event)
向已注册的侦听器发射属性更改事件,以跟踪所有属性或具有指定名称的属性的更新。
|
void |
firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
向已注册的侦听器报告一个布尔绑定属性更新,以跟踪所有属性或具有指定名称的属性的更新。
|
void |
firePropertyChange(String propertyName, int oldValue, int newValue)
向已注册的侦听器报告一个整数绑定属性更新,以跟踪所有属性或具有指定名称的属性的更新。
|
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。
|
public PropertyChangeSupport(Object sourceBean)
PropertyChangeSupport
对象。
sourceBean
-豆给任何事件源。
public void addPropertyChangeListener(PropertyChangeListener listener)
listener
是空的,没有异常被抛出,不采取行动。
listener
- propertychangelistener加以补充
public void removePropertyChangeListener(PropertyChangeListener listener)
listener
曾不止一次地对同一事件的消息人士补充说,这将是一个较少的时间通知后。如果
listener
是空的,或是不加,不引发异常而不采取行动。
listener
- propertychangelistener被删除
public PropertyChangeListener[] getPropertyChangeListeners()
如果一些听众已添加的命名属性,然后返回的数组将是一个propertychangelisteners和PropertyChangeListenerProxy
s混合物。如果调用的方法是区分听众就必须测试每一个元素是否是一个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"
}
}
}
PropertyChangeListeners
说如果没有听众已添加一个空数组
PropertyChangeListenerProxy
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
propertyName
或
listener
是空的,没有异常被抛出,不采取行动。
propertyName
-属性的名字听上。
listener
- propertychangelistener加以补充
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
listener
曾不止一次地对指定的属性相同的事件源补充说,这将是一个较少的时间通知后。如果
propertyName
是空的,没有异常被抛出,不采取行动。如果
listener
是无效的,或者是不添加指定的属性,不引发异常而不采取行动。
propertyName
-房地产,听名字。
listener
- propertychangelistener被删除
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
propertyName
-物业的听的名字
PropertyChangeListeners
。如果没有这样的听众已被添加,或者如果
propertyName
为空,则返回一个空数组。
public void firePropertyChange(String propertyName, Object oldValue, Object newValue)
如果旧值和新值都是相等的和非空值,则不会发射任何事件。
这仅仅是在更一般的firePropertyChange(PropertyChangeEvent)
方法方便的包装。
propertyName
-房地产,专业名称变更
oldValue
-属性的旧值
newValue
-新的属性值
public void firePropertyChange(String propertyName, int oldValue, int newValue)
如果旧值和新值是相等的,则不会发射任何事件。
这仅仅是在更一般的firePropertyChange(String, Object, Object)
方法方便的包装。
propertyName
-房地产,专业名称变更
oldValue
-属性的旧值
newValue
-新的属性值
public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
如果旧值和新值是相等的,则不会发射任何事件。
这仅仅是在更一般的firePropertyChange(String, Object, Object)
方法方便的包装。
propertyName
-房地产,专业名称变更
oldValue
-属性的旧值
newValue
-新的属性值
public void firePropertyChange(PropertyChangeEvent event)
如果给定的事件的旧值和新值是相等的和非空值,则不发射任何事件。
event
-
PropertyChangeEvent
被解雇
public void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
如果旧值和新值都是相等的和非空值,则不会发射任何事件。
这仅仅是在更一般的firePropertyChange(PropertyChangeEvent)
方法方便的包装。
propertyName
-房地产,专业名称变更
index
-属性的元素,是指数变化
oldValue
-属性的旧值
newValue
-新的属性值
public void fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
如果旧值和新值是相等的,则不会发射任何事件。
这仅仅是在更一般的fireIndexedPropertyChange(String, int, Object, Object)
方法方便的包装。
propertyName
-房地产,专业名称变更
index
-属性的元素,是指数变化
oldValue
-属性的旧值
newValue
-新的属性值
public void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
如果旧值和新值是相等的,则不会发射任何事件。
这仅仅是在更一般的fireIndexedPropertyChange(String, int, Object, Object)
方法方便的包装。
propertyName
-房地产,专业名称变更
index
-属性的元素,是指数变化
oldValue
-属性的旧值
newValue
-新的属性值
public boolean hasListeners(String propertyName)
propertyName
是空的,只有检查所有性质注册的监听器。
propertyName
-属性名称。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.