public class VetoableChangeSupport extends Object implements Serializable
PropertyChangeEvent
をそれらにディスパッチします。このクラスのインスタンスを Bean のメンバーフィールドとして使用し、こうした種類の処理をそれに委譲できます。VetoableChangeListener
は、すべてのプロパティーまたは名前で指定されたプロパティーに対して登録できます。
次は、JavaBeans™ 仕様に記載されている規則と推奨事項に従った VetoableChangeSupport
の使用例です。
public class MyBean { private final VetoableChangeSupport vcs = new VetoableChangeSupport(this); public void addVetoableChangeListener(VetoableChangeListener listener) { this.vcs.addVetoableChangeListener(listener); } public void removeVetoableChangeListener(VetoableChangeListener listener) { this.vcs.removeVetoableChangeListener(listener); } private String value; public String getValue() { return this.value; } public void setValue(String newValue) throws PropertyVetoException { String oldValue = this.value; this.vcs.fireVetoableChange("value", oldValue, newValue); this.value = newValue; } [...] }
VetoableChangeSupport
インスタンスはスレッドセーフです。
このクラスは直列化可能です。直列化した場合、直列化可能なリスナーが保存および復元されます。直列化の際、直列化可能でないリスナーはスキップされます。
コンストラクタと説明 |
---|
VetoableChangeSupport(Object sourceBean)
VetoableChangeSupport オブジェクトを構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
void |
addVetoableChangeListener(String propertyName, VetoableChangeListener listener)
特定のプロパティーの VetoableChangeListener を追加します。
|
void |
addVetoableChangeListener(VetoableChangeListener listener)
VetoableChangeListener をリスナーリストに追加します。
|
void |
fireVetoableChange(PropertyChangeEvent event)
登録されているリスナーにプロパティー変更イベントをトリガーして、すべてのプロパティーまたは指定された名前を持つプロパティーの更新を追跡します。
|
void |
fireVetoableChange(String propertyName, boolean oldValue, boolean newValue)
登録されているリスナーに boolean 型の制約プロパティーの更新を報告して、すべてのプロパティーまたは指定された名前を持つプロパティーの更新を追跡します。
|
void |
fireVetoableChange(String propertyName, int oldValue, int newValue)
登録されているリスナーに整数型の制約プロパティーの更新を報告して、すべてのプロパティーまたは指定された名前を持つプロパティーの更新を追跡します。
|
void |
fireVetoableChange(String propertyName, Object oldValue, Object newValue)
登録されているリスナーに制約プロパティーの更新を報告して、すべてのプロパティーまたは指定された名前を持つプロパティーの更新を追跡します。
|
VetoableChangeListener[] |
getVetoableChangeListeners()
addVetoableChangeListener() によって VetoableChangeSupport オブジェクトに追加されたすべてのリスナーの配列を返します。
|
VetoableChangeListener[] |
getVetoableChangeListeners(String propertyName)
指定されたプロパティーに関連付けられているすべてのリスナーの配列を返します。
|
boolean |
hasListeners(String propertyName)
特定のプロパティーにリスナーがあるかどうかを判定します。あらゆるプロパティーに登録されたリスナーが含まれます。
|
void |
removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
特定のプロパティーの VetoableChangeListener を削除します。
|
void |
removeVetoableChangeListener(VetoableChangeListener listener)
リスナーリストから VetoableChangeListener を削除します。
|
public VetoableChangeSupport(Object sourceBean)
VetoableChangeSupport
オブジェクトを構築します。sourceBean
- すべてのイベントのソースとして指定される Bean。public void addVetoableChangeListener(VetoableChangeListener listener)
listener
が null の場合、例外はスローされず、何も処理は行われません。listener
- 追加される VetoableChangeListenerpublic void removeVetoableChangeListener(VetoableChangeListener listener)
listener
が 2 回以上追加された場合は、削除されたあとに 1 回少ない通知が行われます。listener
が null の場合、または追加されなかった場合、例外はスローされず、何も処理は行われません。listener
- 削除される VetoableChangeListenerpublic VetoableChangeListener[] getVetoableChangeListeners()
指定されたプロパティーによって追加されたリスナーがある場合、VetoableChangeListener と VetoableChangeListenerProxy
からなる配列が返されます。リスナーの識別に関係している呼び出し元メソッドは、個々の要素をテストして VetoableChangeListenerProxy
であるかどうかの確認、キャスト、パラメータの確認を行う必要があります。
VetoableChangeListener[] listeners = bean.getVetoableChangeListeners(); for (int i = 0; i < listeners.length; i++) { if (listeners[i] instanceof VetoableChangeListenerProxy) { VetoableChangeListenerProxy proxy = (VetoableChangeListenerProxy)listeners[i]; if (proxy.getPropertyName().equals("foo")) { // proxy is a VetoableChangeListener which was associated // with the property named "foo" } } }
VetoableChangeListeners
、リスナーが追加されていない場合は空の配列VetoableChangeListenerProxy
public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener)
propertyName
または listener
が null の場合、例外はスローされず、何も処理は行われません。propertyName
- 待機しているプロパティーの名前。listener
- 追加される VetoableChangeListenerpublic void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
listener
が 2 回以上追加された場合は、削除されたあとに 1 回少ない通知が行われます。propertyName
が null の場合、例外はスローされず、何も処理は行われません。listener
が null の場合、または指定されたプロパティーに追加されなかった場合、例外はスローされず、何も処理は行われません。propertyName
- 待機していたプロパティーの名前。listener
- 削除される VetoableChangeListenerpublic VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
propertyName
- 待機しているプロパティーの名前VetoableChangeListeners
。このようなリスナーが追加されていない場合、または propertyName
が null の場合は、空の配列が返されます。public void fireVetoableChange(String propertyName, Object oldValue, Object newValue) throws PropertyVetoException
どのリスナーも PropertyVetoException
をスローして更新を拒否できます。いずれかのリスナーが更新を拒否した場合、このメソッドは、この更新をすでに確定しているすべてのリスナーに、古い値に戻る「undo」PropertyChangeEvent
を新たに渡し、再度 PropertyVetoException
をスローします。
古い値と新しい値が等しく、null でない場合、イベントはトリガーされません。
これは、より一般的な fireVetoableChange(PropertyChangeEvent)
メソッドの簡易ラッパーにすぎません。
propertyName
- 変更されるプロパティーのプログラム名oldValue
- プロパティーの古い値newValue
- プロパティーの新しい値PropertyVetoException
- いずれかのリスナーがプロパティーの更新を拒否した場合public void fireVetoableChange(String propertyName, int oldValue, int newValue) throws PropertyVetoException
どのリスナーも PropertyVetoException
をスローして更新を拒否できます。いずれかのリスナーが更新を拒否した場合、このメソッドは、この更新をすでに確定しているすべてのリスナーに、古い値に戻る「undo」PropertyChangeEvent
を新たに渡し、再度 PropertyVetoException
をスローします。
古い値と新しい値が等しい場合、イベントはトリガーされません。
これは、より一般的な fireVetoableChange(String, Object, Object)
メソッドの簡易ラッパーにすぎません。
propertyName
- 変更されるプロパティーのプログラム名oldValue
- プロパティーの古い値newValue
- プロパティーの新しい値PropertyVetoException
- いずれかのリスナーがプロパティーの更新を拒否した場合public void fireVetoableChange(String propertyName, boolean oldValue, boolean newValue) throws PropertyVetoException
どのリスナーも PropertyVetoException
をスローして更新を拒否できます。いずれかのリスナーが更新を拒否した場合、このメソッドは、この更新をすでに確定しているすべてのリスナーに、古い値に戻る「undo」PropertyChangeEvent
を新たに渡し、再度 PropertyVetoException
をスローします。
古い値と新しい値が等しい場合、イベントはトリガーされません。
これは、より一般的な fireVetoableChange(String, Object, Object)
メソッドの簡易ラッパーにすぎません。
propertyName
- 変更されるプロパティーのプログラム名oldValue
- プロパティーの古い値newValue
- プロパティーの新しい値PropertyVetoException
- いずれかのリスナーがプロパティーの更新を拒否した場合public void fireVetoableChange(PropertyChangeEvent event) throws PropertyVetoException
どのリスナーも PropertyVetoException
をスローして更新を拒否できます。いずれかのリスナーが更新を拒否した場合、このメソッドは、この更新をすでに確定しているすべてのリスナーに、古い値に戻る「undo」PropertyChangeEvent
を新たに渡し、再度 PropertyVetoException
をスローします。
指定されたイベントの以前の値と新しい値が等しくて null でない場合、イベントはトリガーされません。
event
- トリガーされる PropertyChangeEvent
PropertyVetoException
- いずれかのリスナーがプロパティーの更新を拒否した場合public boolean hasListeners(String propertyName)
propertyName
が null の場合は、すべてのプロパティーに登録されているリスナーのみがチェックされます。propertyName
- プロパティー名。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.