|
Java プラットフォーム 1.2 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--javax.swing.event.EventListenerList
EventListener のリストを格納するクラスです。1 つのインスタンスを使って、このリストを使用しているインスタンスの (すべての型の) すべてのリスナーを格納できます。型保証された API (JavaBeans 仕様の準拠が望ましい) およびイベント通知メソッドをリスト内の適切な EventListener に送信するメソッドの提供は、EventListenerList を使用しているクラスが担当します。
このクラスが提供する主な利点は、リスナーがない場合には比較的手間がかからず、イベントリスナーのリストを 1 つの場所で直列化して、正しく使用した場合にはある程度のマルチスレッドに対する安全が提供されることです。
使用例: たとえば、FooEvent を送出するクラスを定義して、そのクラスのユーザが FooListener を登録し、FooEvent が発生したら通知を受け取ることができるようにする場合は、クラスの定義に次のコードを追加する必要があります。
EventListenerList listenrList = new EventListnerList();
FooEvent fooEvent = null;
public void addFooListener(FooListener l) {
listenerList.add(FooListener.class, l);
}
public void removeFooListener(FooListener l) {
listenerList.remove(FooListener.class, l);
}
// Notify all listeners that have registered interest for
// notification on this event type. The event instance
// is lazily created using the parameters passed into
// the fire method.
protected void firefooXXX() {
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==FooListener.class) {
// Lazily create the event:
if (fooEvent == null)
fooEvent = new FooEvent(this);
((FooListener)listeners[i+1]).fooXXX(fooEvent);
}
}
}
foo は適切な名前に、Method は適切なメソッド名にそれぞれ変更する必要があります。FooListener インタフェースの通知メソッドごとに起動メソッドが必要です。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。
| フィールドの概要 | |
protected Object[] |
listenerList
|
| コンストラクタの概要 | |
EventListenerList()
|
|
| メソッドの概要 | |
void |
add(Class t,
EventListener l)
指定された型のリスナーとしてリスナーを追加します。 |
int |
getListenerCount()
このリスナーリストのリスナーの総数を返します。 |
int |
getListenerCount(Class t)
このリスナーリストの、指定された型のリスナーの総数を返します。 |
Object[] |
getListenerList()
イベントリスナーのリストを、リスナーとリスナーの型のペアの配列として返します。 |
void |
remove(Class t,
EventListener l)
指定された型のリスナーとしてリスナーを削除します。 |
String |
toString()
EventListenerList の文字列表現を返します。 |
| クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
| フィールドの詳細 |
protected transient Object[] listenerList
| コンストラクタの詳細 |
public EventListenerList()
| メソッドの詳細 |
public Object[] getListenerList()
警告: この配列に格納されているデータの変更を行なってはいけません。そのような操作が必要な場合は、配列そのものではなく、返された配列のコピーに対して行なってください。
public int getListenerCount()
public int getListenerCount(Class t)
public void add(Class t,
EventListener l)
t - 追加されるリスナーの型l - 追加されるリスナー
public void remove(Class t,
EventListener l)
t - 削除されるリスナーの型l - 削除されるリスナーpublic String toString()
|
Java プラットフォーム 1.2 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||