TITLE:EventListenerを実装して独自イベント作成

EventListenerを実装して独自イベント作成

Posted by terai at 2004-01-26

概要

イベント(イベントオブジェクト、イベントリスナー、イベントソース)を新たに作成し、これを使用します。

  • &jnlp;
  • &jar;
  • &zip;

#screenshot

サンプルコード

private final Vector listenerList = new Vector();
public void addFontChangeListener(FontChangeListener l) {
  if(!listenerList.contains(l)) listenerList.add(l);
}
public void removeFontChangeListener(FontChangeListener l) {
  listenerList.remove(l);
}
public void fireFontChangeEvent(String cmd, Font font) {
  Vector list = (Vector)listenerList.clone();
  Enumeration e = list.elements();
  FontChangeEvent evt = new FontChangeEvent(this, cmd, font);
  while(e.hasMoreElements()) {
    FontChangeListener listener = (FontChangeListener)e.nextElement();
    listener.fontStateChanged(evt);
  }
  revalidate();
}

解説

上記のサンプルではメニューからのイベントでコンポーネントのフォントを変更しています。フォントの初期値はイベントリスナーをimplementsしたクラスのコンストラクタで指定しています。

Javaのイベントモデルは、delegation event model(委譲型のイベントモデル)です。以下の参考リンクなどで詳細をチェックしてみてください。

参考リンク

コメント