モジュール java.desktop
パッケージ java.beans

クラスPropertyChangeSupport

java.lang.Object
java.beans.PropertyChangeSupport
すべての実装されたインタフェース:
Serializable
直系の既知のサブクラス:
SwingPropertyChangeSupport

public class PropertyChangeSupport extends Object implements Serializable
バウンド・プロパティをサポートするBeanで使用できるユーティリティ・クラスです。 リスナーのリストを管理し、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
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    PropertyChangeSupportオブジェクトを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    PropertyChangeListenerをリスナー・リストに追加します。
    void
    特定のプロパティのPropertyChangeListenerを追加します。
    void
    fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
    登録されているリスナーにboolean型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
    void
    fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
    登録されているリスナーに整数型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
    void
    fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
    登録されているリスナーにインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
    void
    登録されているリスナーにプロパティ変更イベントをトリガーして、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
    void
    firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
    登録されているリスナーにboolean型のバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
    void
    firePropertyChange(String propertyName, int oldValue, int newValue)
    登録されているリスナーに整数型のバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
    void
    firePropertyChange(String propertyName, Object oldValue, Object newValue)
    登録されているリスナーにバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
    addPropertyChangeListener()によってPropertyChangeSupportオブジェクトに追加されたすべてのリスナーの配列を返します。
    指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。
    boolean
    hasListeners(String propertyName)
    特定のプロパティにリスナーがあるかどうかを判定します。あらゆるプロパティに登録されたリスナーが含まれます。
    void
    PropertyChangeListenerをリスナー・リストから削除します。
    void
    特定のプロパティの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が2回以上追加された場合は、削除された後に1回少ない通知が行われます。 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"
           }
         }
       }
       

      戻り値:
      追加されたすべてのPropertyChangeListeners、リスナーが追加されていない場合は空の配列
      導入されたバージョン:
      1.4
      関連項目:
    • addPropertyChangeListener

      public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
      特定のプロパティのPropertyChangeListenerを追加します。 リスナーが呼び出されるのは、firePropertyChangeの呼出しにより、その特定のプロパティが指定されたときだけです。 同じリスナー・オブジェクトを複数回追加できます。 各プロパティでは、リスナーがそのプロパティに追加された回数だけリスナーが呼び出されます。 propertyNameまたはlistenerがnullの場合、例外はスローされず、何も処理は行われません。
      パラメータ:
      propertyName - 待機しているプロパティの名前。
      listener - 追加されるPropertyChangeListener
      導入されたバージョン:
      1.2
    • removePropertyChangeListener

      public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
      特定のプロパティのPropertyChangeListenerを削除します。 指定したプロパティの同じイベント・ソースにlistenerが2回以上追加された場合は、削除されたあとに1回少ない通知が行われます。 propertyNameがnullの場合、例外はスローされず、何も処理は行われません。 listenerがnullの場合、または指定されたプロパティに追加されなかった場合、例外はスローされず、何も処理は行われません。
      パラメータ:
      propertyName - 待機していたプロパティの名前。
      listener - 削除されるPropertyChangeListener
      導入されたバージョン:
      1.2
    • getPropertyChangeListeners

      public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
      指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。
      パラメータ:
      propertyName - 待機しているプロパティの名前
      戻り値:
      名前付きプロパティに関連付けられているすべてのPropertyChangeListeners このようなリスナーが追加されていない場合、またはpropertyNameがnullの場合は、空の配列が返されます。
      導入されたバージョン:
      1.4
    • firePropertyChange

      public void firePropertyChange(String propertyName, Object oldValue, Object newValue)
      登録されているリスナーにバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。

      古い値と新しい値が等しく、nullでない場合、イベントはトリガーされません。

      これは、より一般的なfirePropertyChange(PropertyChangeEvent)メソッドの簡易ラッパーにすぎません。

      パラメータ:
      propertyName - 変更されたプロパティのプログラム名
      oldValue - プロパティの古い値
      newValue - プロパティの新しい値
    • firePropertyChange

      public void firePropertyChange(String propertyName, int oldValue, int newValue)
      登録されているリスナーに整数型のバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。

      古い値と新しい値が等しい場合、イベントはトリガーされません。

      これは、より一般的なfirePropertyChange(String, Object, Object)メソッドの簡易ラッパーにすぎません。

      パラメータ:
      propertyName - 変更されたプロパティのプログラム名
      oldValue - プロパティの古い値
      newValue - プロパティの新しい値
      導入されたバージョン:
      1.2
    • firePropertyChange

      public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
      登録されているリスナーにboolean型のバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。

      古い値と新しい値が等しい場合、イベントはトリガーされません。

      これは、より一般的なfirePropertyChange(String, Object, Object)メソッドの簡易ラッパーにすぎません。

      パラメータ:
      propertyName - 変更されたプロパティのプログラム名
      oldValue - プロパティの古い値
      newValue - プロパティの新しい値
      導入されたバージョン:
      1.2
    • firePropertyChange

      public void firePropertyChange(PropertyChangeEvent event)
      登録されているリスナーにプロパティ変更イベントをトリガーして、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。

      指定されたイベントの以前の値と新しい値が等しくてnullでない場合、イベントはトリガーされません。

      パラメータ:
      event - トリガーされるPropertyChangeEvent
      導入されたバージョン:
      1.2
    • fireIndexedPropertyChange

      public void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
      登録されているリスナーにインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。

      古い値と新しい値が等しく、nullでない場合、イベントはトリガーされません。

      これは、より一般的なfirePropertyChange(PropertyChangeEvent)メソッドの簡易ラッパーにすぎません。

      パラメータ:
      propertyName - 変更されたプロパティのプログラム名
      index - 変更されたプロパティ要素のインデックス
      oldValue - プロパティの古い値
      newValue - プロパティの新しい値
      導入されたバージョン:
      1.5
    • fireIndexedPropertyChange

      public void fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
      登録されているリスナーに整数型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。

      古い値と新しい値が等しい場合、イベントはトリガーされません。

      これは、より一般的なfireIndexedPropertyChange(String, int, Object, Object)メソッドの簡易ラッパーにすぎません。

      パラメータ:
      propertyName - 変更されたプロパティのプログラム名
      index - 変更されたプロパティ要素のインデックス
      oldValue - プロパティの古い値
      newValue - プロパティの新しい値
      導入されたバージョン:
      1.5
    • fireIndexedPropertyChange

      public void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
      登録されているリスナーにboolean型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。

      古い値と新しい値が等しい場合、イベントはトリガーされません。

      これは、より一般的なfireIndexedPropertyChange(String, int, Object, Object)メソッドの簡易ラッパーにすぎません。

      パラメータ:
      propertyName - 変更されたプロパティのプログラム名
      index - 変更されたプロパティ要素のインデックス
      oldValue - プロパティの古い値
      newValue - プロパティの新しい値
      導入されたバージョン:
      1.5
    • hasListeners

      public boolean hasListeners(String propertyName)
      特定のプロパティにリスナーがあるかどうかを判定します。あらゆるプロパティに登録されたリスナーが含まれます。 propertyNameがnullの場合は、すべてのプロパティに登録されているリスナーのみがチェックされます。
      パラメータ:
      propertyName - プロパティ名。
      戻り値:
      指定したプロパティに1つ以上のリスナーがある場合はtrue
      導入されたバージョン:
      1.2