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メソッドが呼ばれます。