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

編集者:Terai Atsuhiro
作成日:2004-01-26
更新日:2022-07-31 (日) 21:36:32

概要

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

サンプルコード

final private 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 enum = list.elements();
    FontChangeEvent e = new FontChangeEvent(this, cmd, font);
    while(enum.hasMoreElements()) {
      FontChangeListener l = (FontChangeListener)enum.nextElement();
      l.fontStateChanged(e);
    }
    revalidate();
}

解説

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

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

参考リンク

コメント