Processing依存からの脱却−イベントリスナー(1)
次はイベント処理をやってみます。イベント処理とは、マウスでクリックされたりしたときに行う処理のことです。次のようなコードを書いてみます。
package jp.afeq; import java.awt.*; public class Main extends Frame { public Main(){ super(); this.setSize(200, 100); Button b=new Button("Click me!"); b.addActionListener(new ButtonListener()); this.add(b,BorderLayout.CENTER); this.setVisible(true); } public static void main(String[] args) { new Main(); } } class ButtonListener implements ActionListener{ public void actionPerformed(ActionEvent e){ System.out.println("clicked!"); } }
これはボタンはウィンドウに表示されているボタンをクリックすると、"clicked!"とコンソール画面に表示されます。
b.addActionListener(new ButtonListener());
の部分ではボタンbにイベントリスナーを装備させます。イベントリスナーの定義は次のようにします。
class イベントリスナークラス implements HogehogeListener{ public void イベント処理メソッド(引数){ //イベント処理 } }
また、これの実装は
コンポーネント.addHogehogeListener(イベントリスナー);
によって行います。
例のプログラムではHogehogeがActionになっています。ActionListenerでは、ActionEvent発生時にactionPerformedメソッドが呼び出されます。このプログラムではActionListenerにあるactionPerformedメソッドをオーバーライドしてんのかな?また、調べておきます。