@634

リスナーでイベント処理

Advertisement

イベント

「ボタンを押す」「クリックした」などの、ユーザが行う任意の操作をイベントと呼び、イベントに対する処理を記述することができる。

そのためにリスナーを使う。イベントの種類によって使うリスナーが違う違う(リンク先:java.sun.com)

リスナー実装の手順。

まずイベント処理のためのパッケージjava.awt.eventをインポート。
import java.awt.event.*;

次。リスナーはインタフェースだから、使いたいリスナー実装。
            //リスナーを複数実装する場合はカンマで区切る。
class クラス名 implements KeyListener, MouseListener

そしてコンポーネント(ボタンとかフレームとか)にリスナー登録。登録方法はコンポーネントによって違うけど、ほぼ一緒。リスナーのインタフェースで定義されているメソッドは使わない場合もすべてのメソッド記述しなければならない。

実験

とりあえず、前回のボタンを使えるようにしてみる。
前回のやつ。
ボタンを押したらプログラムが終了する。
import java.awt.*;
import java.awt.event.*;

public class WindowTest{
    public static void main(String args[]){
        mainFrame f = new mainFrame();
        f.setSize(200, 100);
        f.setTitle("タイトル");
        f.show();
    }
}

                                         //リスナー実装
class mainFrame extends Frame implements ActionListener{
    Button btn1, btn2, btn3;

    public mainFrame(){
        setLayout(new FlowLayout());

        btn1 = new Button("テスト");
        btn2 = new Button("てすと");
        btn3 = new Button("Test");

        add(btn1);
        add(btn2);
        add(btn3);

        //リスナー登録
        btn1.addActionListener(this);
        btn2.addActionListener(this);
        btn3.addActionListener(this);
    }

    //ActionEvent発生時の処理記述。
    public void actionPerformed(ActionEvent e){
        System.exit(1);
    }
}
ボタンによって処理を振り分けたい場合は以下のように記述。
public void actionPerformed(ActionEvent e){
    if(e.getSource() == btn1){
        btn1が押されたときの処理;
    }else if(e.getSource() == btn2){
        btn2が押されたときの処理;
    }else if(e.getSource() == btn3){
        btn3が押されたときの処理;
    }
}

Advertisement

ショートカット

634
このカテゴリのトップページに戻る
634labs
   UIコレクションギャラリー

サイト検索

Google

Web サイト内

Y!ログール