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

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

概要

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

サンプルコード

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 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(委譲型のイベントモデル)です。以下の参考リンクなどで詳細をチェックしてみてください。

参考リンク

コメント