JavaTM 2 Platform
Standard Ed. 6

java.beans
類別 PropertyChangeSupport

java.lang.Object
  繼承者 java.beans.PropertyChangeSupport
所有已實作的介面:
Serializable
直接已知子類別:
SwingPropertyChangeSupport

public class PropertyChangeSupport
extends Object
implements Serializable

這是一個實用工具類別,支持綁定 (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
 

建構子詳細資訊

PropertyChangeSupport

public PropertyChangeSupport(Object sourceBean)
建構一個 PropertyChangeSupport 物件。

參數:
sourceBean - 作為所有事件的源提供的 bean。
方法詳細資訊

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
向偵聽器列表添加一個 PropertyChangeListener。該偵聽器是為所有屬性註冊的。同一偵聽器對象可以被添加多次,並且它們被調用的次數與添加它們的次數相同。如果 listener 為 null,則不會拋出異常並且不執行操作。

參數:
listener - 要添加的 PropertyChangeListener

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
從偵聽器列表移除一個 PropertyChangeListener。此方法移除一個為所有屬性註冊的 PropertyChangeListener。如果將 listener 多次添加到同一事件源,則在被移除之後,它至少將被通知一次。如果 listener 為 null,或者從未被添加,則不會拋出異常並且不執行操作。

參數:
listener - 要移除的 PropertyChangeListener

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners()
返回使用 addPropertyChangeListener() 添加到此 PropertyChangeSupport 物件中的所有偵聽器組成的陣列。

如果已經使用指定屬性添加一些偵聽器,則返回的陣列將是 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,如果沒有添加偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
PropertyChangeListenerProxy

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName,
                                      PropertyChangeListener listener)
為指定的屬性向偵聽器列表中添加一個 PropertyChangeListener。該偵聽器只在調用 firePropertyChange 為特定屬性命名時調用。可以多次添加同一偵聽器物件。對於每個屬性,該偵聽器被調用的次數與為該屬性添加此偵聽器的次數相同。如果 propertyNamelistener 為 null,則不會拋出異常並且不執行操作。

參數:
propertyName - 要偵聽的屬性的名稱。
listener - 要添加的 PropertyChangeListener

removePropertyChangeListener

public void removePropertyChangeListener(String propertyName,
                                         PropertyChangeListener listener)
為特定屬性移除一個 PropertyChangeListener。如果將 listener 多次添加到指定屬性的同一事件源,則在被移除之後,它至少將被通知一次。如果 propertyName 為 null,則不會拋出異常並且不執行操作。如果 listener 為 null,或者從不為指定屬性添加 pcl,則不拋出異常並不執行任何操作。

參數:
propertyName - 已被偵聽的屬性的名稱。
listener - 要移除的 PropertyChangeListener

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
返回與指定屬性相關聯的所有偵聽器的列表。

參數:
propertyName - 將被偵聽的屬性的名稱
返回:
與指定屬性相關聯的所有 PropertyChangeListener。如果沒有添加這樣的偵聽器,或者 propertyName 為 null,則返回一個空陣列。
從以下版本開始:
1.4

firePropertyChange

public void firePropertyChange(String propertyName,
                               Object oldValue,
                               Object newValue)
報告所有已註冊偵聽器的綁定屬性更新。如果新屬性和舊屬性相同並且是非 null 的,則不會觸發事件。

這只是一個用來包裹獲取 PropertyChangeEvent 值的更一般 firePropertyChange 方法的便捷外覆器。

參數:
propertyName - 被更改屬性的程式名稱。
oldValue - 屬性的舊值。
newValue - 屬性的新值。

firePropertyChange

public void firePropertyChange(String propertyName,
                               int oldValue,
                               int newValue)
以 int 值形式報告所有已註冊偵聽器的綁定屬性更新。如果新屬性和舊屬性相同,則不會觸發事件。

這只是一個用來包裹獲取 Object 值的更常見 firePropertyChange 方法的便捷外覆器。

參數:
propertyName - 被更改屬性的程式名稱。
oldValue - 屬性的舊值。
newValue - 屬性的新值。

firePropertyChange

public void firePropertyChange(String propertyName,
                               boolean oldValue,
                               boolean newValue)
以 boolean 值形式報告所有已註冊偵聽器的綁定屬性更新。如果新屬性和舊屬性相同,則不會觸發事件。

這只是一個用來包裹獲取 Object 值的更常見 firePropertyChange 方法的便捷外覆器。

參數:
propertyName - 被更改屬性的程式名稱。
oldValue - 屬性的舊值。
newValue - 屬性的新值。

firePropertyChange

public void firePropertyChange(PropertyChangeEvent evt)
對所有已註冊偵聽器觸發一個現有 PropertyChangeEvent。如果給定事件的舊值和新值相等並且都是非 null 的,則不會觸發事件。

參數:
evt - PropertyChangeEvent 物件。

fireIndexedPropertyChange

public void fireIndexedPropertyChange(String propertyName,
                                      int index,
                                      Object oldValue,
                                      Object newValue)
報告所有已註冊偵聽器的綁定 (bound) 索引 (indexed) 屬性更新。

如果舊值和新值相等並且都是非 null 的,則不會觸發事件。

這只是一個用來包裹獲取 PropertyChangeEvent 值的更一般 firePropertyChange 方法的便捷外覆器。

參數:
propertyName - 被更改屬性的程式名稱。
index - 被更改屬性元素的索引。
oldValue - 屬性的舊值。
newValue - 屬性的新值。
從以下版本開始:
1.5

fireIndexedPropertyChange

public void fireIndexedPropertyChange(String propertyName,
                                      int index,
                                      int oldValue,
                                      int newValue)
int 值形式報告所有已註冊偵聽器的綁定索引屬性更新。

如果舊值和新值相等,則不會觸發事件。

這只是一個用來包裹獲取 Object 值的更常見 fireIndexedPropertyChange 方法的便捷外覆器。

參數:
propertyName - 被更改屬性的程式名稱。
index - 被更改屬性元素的索引。
oldValue - 屬性的舊值。
newValue - 屬性的新值。
從以下版本開始:
1.5

fireIndexedPropertyChange

public void fireIndexedPropertyChange(String propertyName,
                                      int index,
                                      boolean oldValue,
                                      boolean newValue)
boolean 值形式報告所有已註冊偵聽器的綁定索引屬性更新。

如果舊值和新值相等,則不會觸發事件。

這只是一個用來包裹獲取 Object 值的更常見 fireIndexedPropertyChange 方法的便捷外覆器。

參數:
propertyName - 被更改屬性的程式名稱。
index - 被更改屬性元素的索引。
oldValue - 屬性的舊值。
newValue - 屬性的新值。
從以下版本開始:
1.5

hasListeners

public boolean hasListeners(String propertyName)
檢查是否存在特定屬性的任何偵聽器,包括那些已在所有屬性上註冊的偵聽器。如果 propertyName 為 null,則只檢查所有屬性上註冊的偵聽器。

參數:
propertyName - 屬性名。
返回:
如果存在給定屬性的一個或多個偵聽器,則返回 true

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only