|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.swing.event.EventListenerList
EventListener のリストを格納するクラスです。1 つのインスタンスを使って、このリストを使用しているインスタンスの (すべてのタイプの) すべてのリスナーを格納できます。タイプ保証された API (JavaBeans 仕様への準拠が望ましい) およびイベント通知メソッドをリスト内の適切な EventListener に送信するメソッドの提供は、EventListenerList を使用しているクラスが行います。 このクラスが提供する主な利点は、リスナーがない場合には比較的安上がりで、イベントリスナーのリストを 1 つの場所で直列化して、正しく使用した場合には、マルチスレッドに対するある程度の安全性が提供されることです。使用例としては、FooEvent を送出するクラスを定義して、そのクラスのユーザが FooListener を登録し、FooEvent が発生したら通知を受け取れるようにしたい場合などがあります。クラスの定義には、次のコードを追加する必要があります。
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 に適しています。JDK バージョン 1.4 以降、すべての JavaBeans の長期記憶用サポートは、java.beans
パッケージに追加されています。詳細は、XMLEncoder
を参照してください。
フィールドの概要 | |
protected Object[] |
listenerList
|
コンストラクタの概要 | |
EventListenerList()
|
メソッドの概要 | |
void |
add(Class t,
EventListener l)
指定されたタイプのリスナーとしてリスナーを追加します。 |
int |
getListenerCount()
このリスナーリストのリスナーの総数を返します。 |
int |
getListenerCount(Class t)
このリスナーリストの、指定されたタイプのリスナーの総数を返します。 |
Object[] |
getListenerList()
イベントリスナーのリストを、リスナーとリスナータイプのペアの配列として返します。 |
EventListener[] |
getListeners(Class t)
指定されたタイプのすべてのリスナーの配列を返します。 |
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 EventListener[] getListeners(Class t)
ClassCastException
- 指定されたクラスが EventListener に割り当てられない場合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()
Object
内の toString
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.