public class VetoableChangeSupport extends Object implements Serializable
PropertyChangeEventをそれらにディスパッチします。このクラスのインスタンスをBeanのメンバー・フィールドとして使用し、こうした種類の処理をそれに委譲できます。VetoableChangeListenerは、すべてのプロパティまたは名前で指定されたプロパティに対して登録できます。
次は、JavaBeans(tm)仕様に記載されているルールと推奨事項に従った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インスタンスはスレッドセーフです。
このクラスは直列化可能です。直列化した場合、直列化可能なリスナーが保存および復元されます。直列化の際、直列化可能でないリスナーはスキップされます。
PropertyChangeSupport, 直列化された形式| コンストラクタと説明 |
|---|
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、リスナーが追加されていない場合は空の配列VetoableChangeListenerProxypublic 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 - トリガーされるPropertyChangeEventPropertyVetoException - いずれかのリスナーがプロパティの更新を拒否した場合public boolean hasListeners(String propertyName)
propertyNameがnullの場合は、すべてのプロパティに登録されているリスナーのみがチェックされます。propertyName - プロパティ名。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.