public class PropertyChangeSupport extends Object implements Serializable
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
インスタンスはスレッドセーフです。
このクラスは直列化可能です。直列化した場合、直列化可能なリスナーが保存および復元されます。直列化の際、直列化可能でないリスナーはスキップされます。
コンストラクタと説明 |
---|
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
、リスナーが追加されていない場合は空の配列PropertyChangeListenerProxy
public 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
- トリガーされる PropertyChangeEvent
public 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, 2013, Oracle and/or its affiliates. All rights reserved.