public class EventListenerList extends Object implements Serializable
EventListenerList listenerList = new EventListenerList();
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は適切な名前に、fireFooXxxは適切なメソッド名にそれぞれ変更する必要があります。FooListenerインタフェースの通知メソッドごとに起動メソッドが必要です。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースとの互換性がなくなる予定です。現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。1.4以降、すべてのJavaBeans(tm)用の長期間の格納サポートがjava.beansパッケージに追加されています。XMLEncoderを参照してください。
| 修飾子と型 | フィールドと説明 |
|---|---|
protected Object[] |
listenerList |
| コンストラクタと説明 |
|---|
EventListenerList() |
| 修飾子と型 | メソッドと説明 |
|---|---|
<T extends EventListener> |
add(Class<T> t, T l)
指定された型のリスナーとしてリスナーを追加します。
|
int |
getListenerCount()
このリスナー・リストのリスナーの総数を返します。
|
int |
getListenerCount(Class<?> t)
このリスナー・リストの、指定された型のリスナーの総数を返します。
|
Object[] |
getListenerList()
イベント・リスナーのリストを、リスナーとリスナー・タイプのペアの配列として返します。
|
<T extends EventListener> |
getListeners(Class<T> t)
指定された型のすべてのリスナーの配列を返します。
|
<T extends EventListener> |
remove(Class<T> t, T l)
指定された型のリスナーとしてリスナーを削除します。
|
String |
toString()
EventListenerListの文字列表現を返します。
|
protected transient Object[] listenerList
public Object[] getListenerList()
public <T extends EventListener> T[] getListeners(Class<T> t)
ClassCastException - 指定されたクラスがEventListenerに割り当てられない場合public int getListenerCount()
public int getListenerCount(Class<?> t)
public <T extends EventListener> void add(Class<T> t, T l)
t - 追加されるリスナーの型l - 追加されるリスナーpublic <T extends EventListener> void remove(Class<T> t, T l)
t - 削除されるリスナーの型l - 削除されるリスナー バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.