public class PropertyChangeSupport extends Object implements Serializable
PropertyChangeEventをそれらにディスパッチします。このクラスのインスタンスをBeanのメンバー・フィールドとして使用し、こうした種類の処理をそれに委譲できます。PropertyChangeListenerは、すべてのプロパティまたは名前で指定されたプロパティに対して登録できます。
次は、JavaBeans(tm)仕様に記載されているルールと推奨事項に従った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インスタンスはスレッドセーフです。
このクラスは直列化可能です。直列化した場合、直列化可能なリスナーが保存および復元されます。直列化の際、直列化可能でないリスナーはスキップされます。
VetoableChangeSupport, 直列化された形式| コンストラクタと説明 |
|---|
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)
登録されているリスナーに整数型のインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
|
void |
fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
登録されているリスナーにインデックス付きバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
|
void |
firePropertyChange(PropertyChangeEvent event)
登録されているリスナーにプロパティ変更イベントをトリガーして、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
|
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)
登録されているリスナーにバウンド・プロパティの更新を報告して、すべてのプロパティまたは指定された名前を持つプロパティの更新を追跡します。
|
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 - すべてのイベントのソースとして指定されるBean。public void addPropertyChangeListener(PropertyChangeListener listener)
listenerがnullの場合、例外はスローされず、何も処理は行われません。listener - 追加されるPropertyChangeListenerpublic void removePropertyChangeListener(PropertyChangeListener listener)
listenerが2回以上追加された場合は、削除されたあとに1回少ない通知が行われます。listenerがnullの場合、または追加されなかった場合、例外はスローされず、何も処理は行われません。listener - 削除されるPropertyChangeListenerpublic 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"
}
}
}
PropertyChangeListeners、リスナーが追加されていない場合は空の配列PropertyChangeListenerProxypublic void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
propertyNameまたはlistenerがnullの場合、例外はスローされず、何も処理は行われません。propertyName - 待機しているプロパティの名前。listener - 追加されるPropertyChangeListenerpublic void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
listenerが2回以上追加された場合は、削除されたあとに1回少ない通知が行われます。propertyNameがnullの場合、例外はスローされず、何も処理は行われません。listenerがnullの場合、または指定されたプロパティに追加されなかった場合、例外はスローされず、何も処理は行われません。propertyName - 待機していたプロパティの名前。listener - 削除されるPropertyChangeListenerpublic PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
propertyName - 待機しているプロパティの名前PropertyChangeListeners。このようなリスナーが追加されていない場合、またはpropertyNameがnullの場合は、空の配列が返されます。public void firePropertyChange(String propertyName, Object oldValue, Object newValue)
古い値と新しい値が等しく、nullでない場合、イベントはトリガーされません。
これは、より一般的な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)
指定されたイベントの以前の値と新しい値が等しくてnullでない場合、イベントはトリガーされません。
event - トリガーされるPropertyChangeEventpublic void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
古い値と新しい値が等しく、nullでない場合、イベントはトリガーされません。
これは、より一般的な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がnullの場合は、すべてのプロパティに登録されているリスナーのみがチェックされます。propertyName - プロパティ名。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.