- すべての実装されたインタフェース:
- Serializable
- 直系の既知のサブクラス:
- SwingPropertyChangeSupport
PropertyChangeEventをそれらにディスパッチします。 このクラスのインスタンスをBeanのメンバー・フィールドとして使用し、こうした種類の処理をそれに委譲できます。 PropertyChangeListenerは、すべてのプロパティまたは名前で指定されたプロパティに対して登録できます。 
 
 次に、JavaBeans仕様に記載されているルールおよび推奨事項に従ったPropertyChangeSupportの使用例を示します:
 
 public class MyBean {
     private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
     public void addPropertyChangeListener(PropertyChangeListener listener) {
         this.pcs.addPropertyChangeListener(listener);
     }
     public void removePropertyChangeListener(PropertyChangeListener listener) {
         this.pcs.removePropertyChangeListener(listener);
     }
     private String value;
     public String getValue() {
         return this.value;
     }
     public void setValue(String newValue) {
         String oldValue = this.value;
         this.value = newValue;
         this.pcs.firePropertyChange("value", oldValue, newValue);
     }
     [...]
 }
 
 
 PropertyChangeSupportインスタンスはスレッドセーフです。
 
このクラスは直列化可能です。 直列化した場合、直列化可能なリスナーが保存および復元されます。 直列化の際、直列化可能でないリスナーはスキップされます。
- 導入されたバージョン:
- 1.1
- 関連項目:
- VetoableChangeSupport, 直列化された形式
- 
コンストラクタのサマリーコンストラクタ
- 
メソッドのサマリー修飾子と型メソッド説明voidaddPropertyChangeListener(PropertyChangeListener listener)PropertyChangeListenerをリスナー・リストに追加します。voidaddPropertyChangeListener(String propertyName, PropertyChangeListener listener)特定のプロパティのPropertyChangeListenerを追加します。voidfireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)登録されているリスナーにboolean型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。voidfireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)登録されているリスナーに整数型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。voidfireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)登録されているリスナーにインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。void登録されているリスナーにプロパティ変更イベントをトリガーして、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。voidfirePropertyChange(String propertyName, boolean oldValue, boolean newValue)登録されているリスナーにboolean型のバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。voidfirePropertyChange(String propertyName, int oldValue, int newValue)登録されているリスナーに整数型のバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。voidfirePropertyChange(String propertyName, Object oldValue, Object newValue)登録されているリスナーにバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。addPropertyChangeListener()によってPropertyChangeSupportオブジェクトに追加されたすべてのリスナーの配列を返します。getPropertyChangeListeners(String propertyName)指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。booleanhasListeners(String propertyName)特定のプロパティにリスナーがあるかどうかを判定します。あらゆるプロパティに登録されたリスナーが含まれます。voidPropertyChangeListenerをリスナー・リストから削除します。voidremovePropertyChangeListener(String propertyName, PropertyChangeListener listener)特定のプロパティのPropertyChangeListenerを削除します。
- 
コンストラクタの詳細- 
PropertyChangeSupportpublic PropertyChangeSupport(Object sourceBean)PropertyChangeSupportオブジェクトを構築します。- パラメータ:
- sourceBean- すべてのイベントのソースとして指定されるBean。
 
 
- 
- 
メソッドの詳細- 
addPropertyChangeListenerpublic void addPropertyChangeListener(PropertyChangeListener listener)PropertyChangeListenerをリスナー・リストに追加します。 リスナーは、すべてのプロパティに対して登録されます。 同じリスナー・オブジェクトを複数回追加でき、追加した回数だけリスナー・オブジェクトが呼び出されます。listenerがnullの場合、例外はスローされず、何も処理は行われません。- パラメータ:
- listener- 追加されるPropertyChangeListener
 
- 
removePropertyChangeListenerpublic void removePropertyChangeListener(PropertyChangeListener listener)PropertyChangeListenerをリスナー・リストから削除します。 すべてのプロパティで登録されたPropertyChangeListenerを削除します。 同じイベント・ソースにlistenerが2回以上追加された場合は、削除された後に1回少ない通知が行われます。listenerがnullの場合、または追加されなかった場合、例外はスローされず、何も処理は行われません。- パラメータ:
- listener- 削除されるPropertyChangeListener
 
- 
getPropertyChangeListenerspublic 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" } } }- 戻り値:
- 追加されたすべてのPropertyChangeListeners、リスナーが追加されていない場合は空の配列
- 導入されたバージョン:
- 1.4
- 関連項目:
- PropertyChangeListenerProxy
 
- 
addPropertyChangeListenerpublic void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)特定のプロパティのPropertyChangeListenerを追加します。 リスナーが呼び出されるのは、firePropertyChangeの呼出しにより、その特定のプロパティが指定されたときだけです。 同じリスナー・オブジェクトを複数回追加できます。 各プロパティでは、リスナーがそのプロパティに追加された回数だけリスナーが呼び出されます。propertyNameまたはlistenerがnullの場合、例外はスローされず、何も処理は行われません。- パラメータ:
- propertyName- 待機しているプロパティの名前。
- listener- 追加されるPropertyChangeListener
- 導入されたバージョン:
- 1.2
 
- 
removePropertyChangeListenerpublic void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)特定のプロパティのPropertyChangeListenerを削除します。 指定したプロパティの同じイベント・ソースにlistenerが2回以上追加された場合は、削除されたあとに1回少ない通知が行われます。propertyNameがnullの場合、例外はスローされず、何も処理は行われません。listenerがnullの場合、または指定されたプロパティに追加されなかった場合、例外はスローされず、何も処理は行われません。- パラメータ:
- propertyName- 待機していたプロパティの名前。
- listener- 削除されるPropertyChangeListener
- 導入されたバージョン:
- 1.2
 
- 
getPropertyChangeListenerspublic PropertyChangeListener[] getPropertyChangeListeners(String propertyName)指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。- パラメータ:
- propertyName- 待機しているプロパティの名前
- 戻り値:
- 名前付きプロパティに関連付けられているすべてのPropertyChangeListeners。 このようなリスナーが追加されていない場合、またはpropertyNameがnullの場合は、空の配列が返されます。
- 導入されたバージョン:
- 1.4
 
- 
firePropertyChange登録されているリスナーにバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。古い値と新しい値が等しく、nullでない場合、イベントはトリガーされません。 これは、より一般的な firePropertyChange(PropertyChangeEvent)メソッドの簡易ラッパーにすぎません。- パラメータ:
- propertyName- 変更されたプロパティのプログラム名
- oldValue- プロパティの古い値
- newValue- プロパティの新しい値
 
- 
firePropertyChangepublic void firePropertyChange(String propertyName, int oldValue, int newValue)登録されているリスナーに整数型のバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。古い値と新しい値が等しい場合、イベントはトリガーされません。 これは、より一般的な firePropertyChange(String, Object, Object)メソッドの簡易ラッパーにすぎません。- パラメータ:
- propertyName- 変更されたプロパティのプログラム名
- oldValue- プロパティの古い値
- newValue- プロパティの新しい値
- 導入されたバージョン:
- 1.2
 
- 
firePropertyChangepublic void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)登録されているリスナーにboolean型のバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。古い値と新しい値が等しい場合、イベントはトリガーされません。 これは、より一般的な firePropertyChange(String, Object, Object)メソッドの簡易ラッパーにすぎません。- パラメータ:
- propertyName- 変更されたプロパティのプログラム名
- oldValue- プロパティの古い値
- newValue- プロパティの新しい値
- 導入されたバージョン:
- 1.2
 
- 
firePropertyChangepublic void firePropertyChange(PropertyChangeEvent event)登録されているリスナーにプロパティ変更イベントをトリガーして、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。指定されたイベントの以前の値と新しい値が等しくてnullでない場合、イベントはトリガーされません。 - パラメータ:
- event- トリガーされる- PropertyChangeEvent
- 導入されたバージョン:
- 1.2
 
- 
fireIndexedPropertyChangepublic void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)登録されているリスナーにインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。古い値と新しい値が等しく、nullでない場合、イベントはトリガーされません。 これは、より一般的な firePropertyChange(PropertyChangeEvent)メソッドの簡易ラッパーにすぎません。- パラメータ:
- propertyName- 変更されたプロパティのプログラム名
- index- 変更されたプロパティ要素のインデックス
- oldValue- プロパティの古い値
- newValue- プロパティの新しい値
- 導入されたバージョン:
- 1.5
 
- 
fireIndexedPropertyChangepublic void fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)登録されているリスナーに整数型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。古い値と新しい値が等しい場合、イベントはトリガーされません。 これは、より一般的な fireIndexedPropertyChange(String, int, Object, Object)メソッドの簡易ラッパーにすぎません。- パラメータ:
- propertyName- 変更されたプロパティのプログラム名
- index- 変更されたプロパティ要素のインデックス
- oldValue- プロパティの古い値
- newValue- プロパティの新しい値
- 導入されたバージョン:
- 1.5
 
- 
fireIndexedPropertyChangepublic void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)登録されているリスナーにboolean型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。古い値と新しい値が等しい場合、イベントはトリガーされません。 これは、より一般的な fireIndexedPropertyChange(String, int, Object, Object)メソッドの簡易ラッパーにすぎません。- パラメータ:
- propertyName- 変更されたプロパティのプログラム名
- index- 変更されたプロパティ要素のインデックス
- oldValue- プロパティの古い値
- newValue- プロパティの新しい値
- 導入されたバージョン:
- 1.5
 
- 
hasListenerspublic boolean hasListeners(String propertyName)特定のプロパティにリスナーがあるかどうかを判定します。あらゆるプロパティに登録されたリスナーが含まれます。propertyNameがnullの場合は、すべてのプロパティに登録されているリスナーのみがチェックされます。- パラメータ:
- propertyName- プロパティ名。
- 戻り値:
- 指定したプロパティに1つ以上のリスナーがある場合はtrue
- 導入されたバージョン:
- 1.2
 
 
-