初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
イベントの処理方法
ここでは、実際によく使うアクションイベントを例にあげながらイベントの処理の流れを見ていきます。
アクションイベントとはコンポーネントで作成されたボタンなどをクリックしたときに何らかの処理をさせたい
時に使用します。
まず、イベントを行うときには必ずリスナーインタフェースを実装しなければいけません。
もちろん今回実装するリスナーインタフェースはActionListenerです。
記述方法
public class EventSample extends Applet implements ActionListener{ }
これで、このクラスはアクションイベントを処理することが出来るようになりました。次にアクションイベントを受け取るよう登録します。
そのときに使うメソッドがaddActionListenerメソッドです。
このメソッドはAppletクラスの親クラスであるComponentクラスで定義されています。
記述方法
addActionListener(ActionListener a)
addActionListenerメソッドの引数には通常はイベントを受け取るクラスのオブジェクトを指定してやります。しかし、イベントを受け取るクラスつまり、上記
public class EventSample extends Applet implements ActionListener{
}
のようにこの中でaddActionListenerメソッドを定義した場合は以下のように記述します。addActionListener(this)
のように記述します。これはつまり自分自身のクラスでイベントを受け取るためです。 thisの意味は自分自身を指します。
これでアクションイベントを受け取ることが出来ました。イベントリスナー(ActionListener)がイベントを受け取るとイベントリスナー内で宣言された
イベント処理メソッド(抽象メソッド)が呼び出されます。
また、インタフェースを実装する側のクラスで抽象メソッドをすべて定義しなければいけませんでした。
したがって、他の使用しないイベント処理メソッドが存在する場合はそれらもオーバーライトしなければいけません。
ではイベントの処理の流れをプログラムで確認します。
サンプルプログラム
import java.applet.*; import java.awt.*; import java.awt.event.*; //アクションイベントを受け取るためにActionListenerを実装します。 public class EventAsample extends Applet implements ActionListener{ Button bu = new Button("ボタン"); public void init(){ add(bu); //今回はボタンにアクションイベントを受け取るように宣言しています bu.addActionListener(this); } //イベント処理メソッドを呼び出してボタンに行わせるイベント処理を記述します。 public void actionPerformed(ActionEvent e){ イベントの処理を記述
} }
Sponsored link
これがイベント処理の流れです。
しかし今回はイベントを受け取るクラスにActionListenerを実装してその中で
イベントを受け取るように宣言していますので
bu.addActionListener(this);
として引数にはthisを指定しています。イベント処理をするクラスを別に用意した場合の記述の仕方を説明します。
以下を見てください。
import java.applet.*; import java.awt.*; import java.awt.event.*; //アクションイベントを受け取るためにActionListenerを実装します。 public class EventAsample extends Applet { Button bu = new Button("ボタン"); public void init(){ add(bu); //myListenerクラスのオブジェクトを作成 myListener ml = new myListener(); //今回はボタンにアクションイベントを受け取るように宣言しています bu.addActionListener(ml); } class myListener implements ActionListener{ //イベント処理メソッドを呼び出してボタンに行わせるイベント処理を記述します。 public void actionPerformed(ActionEvent e){ イベントの処理を記述このように今回はイベント処理を行うクラスを別に用意して、インスタンスすることで呼び出しています。
} }
そのような時はbu.addActionListener(ml);
と引数には呼び出したクラスの参照変数を記述します。 ページのトップへ戻る