torutkのブログ

ソフトウェア・エンジニアのブログ

Java AWT/Swingの機能

Java Beans仕様に則ってAWT/Swingの部品は作られているので、PropertyChangeEventを発行する仕組みが盛り込まれている。そこで、AWT/Swing部品をサブクラス化して自分用クラスを作るとき、イベント通知の仕組みとしてPropertyChangeEventを利用すると楽にプログラミングが出来そうです。
AWT部品およびSwing部品の基底クラスとなっているjava.awtパッケージのComponentおよびContainerクラスで以下の機能が用意されています。

  • PropertyChangeEventを発行させるためのfirePropertyChangeメソッド
  • addPropertyChangeListenerメソッド
  • removePropertyChangeListenerメソッド

例えば、ボタンが押されたときにPropertyChangeEventを発行したいという場合は

  okButton.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
              firePropertyChange(NAME, oldValue, newValue);
          }
      });

と書いてあげると、登録されているPropertyChangeListenerオブジェクトのpropertyChangeメソッドが呼ばれます。