イベントとイベントリスナー (3/4)
作成:2010-01-14 14:13
更新:2011-10-11 15:19
更新:2011-10-11 15:19
■actionPerformedとリスナーの組み込み
さて、今回使ったActionListenerですが、これは「アクションイベント(ActionEvent)」と呼ばれるイベントの処理をする代理人です。イベントというのはたくさんの種類がありますから、その種類ごとに別々にクラスが用意されているんですね。
このActionListenerのように、「イベント処理の機能を用意したインターフェイス」のことを「イベントリスナー」って呼んでます。アクションイベントのリスナーは、ActionListener。実にわかりやすいですね。じゃあ、ウィンドウを閉じたりしたときのリスナーならWindowListenerか、と思うでしょう? ズバリ、その通りなのです。マウスのイベントのリスナーはMouseListener。ね、基本的な考え方がわかれば、意外とわかりやすいネーミングでしょう?
それぞれのリスナーには、「こういうイベントが起きたらこのメソッドを実行する」って仕組みが最初から組み込まれています。ですから、私たちは使いたいイベントに対応するメソッドを用意しておけばいいんです。今回使ったActionListenerには、1つだけメソッドが用意されています。
では、今回のサンプルで、actionPerformedで実行している処理を見てみましょう。こういうものでした。
こうして代理人のクラスは用意できました。が、これだけではダメです。こいつのインスタンスを、使いたい部品に組み込んでやらないといけません。それを行なっているのが、Test5のコンストラクタにある、この部分です。
リスナーの組み込みは、全て「add○○Listener」というような形をしています。ActionListenerの組み込みだから、addActionListener。それじゃ、WindowListenerの組み込みならaddWindowListenerか、と思うでしょう? ズバリその通りなんです。ならマウスのイベントは…って、くどいからやめますけど、そんな具合にメソッドでリスナークラスのインスタンスを組み込んで、初めてそれが使えるようになるのですね。
このActionListenerのように、「イベント処理の機能を用意したインターフェイス」のことを「イベントリスナー」って呼んでます。アクションイベントのリスナーは、ActionListener。実にわかりやすいですね。じゃあ、ウィンドウを閉じたりしたときのリスナーならWindowListenerか、と思うでしょう? ズバリ、その通りなのです。マウスのイベントのリスナーはMouseListener。ね、基本的な考え方がわかれば、意外とわかりやすいネーミングでしょう?
それぞれのリスナーには、「こういうイベントが起きたらこのメソッドを実行する」って仕組みが最初から組み込まれています。ですから、私たちは使いたいイベントに対応するメソッドを用意しておけばいいんです。今回使ったActionListenerには、1つだけメソッドが用意されています。
public void actionPerformed(ActionEvent ev){こんなものですね。これが「アクションイベントが起きた時に呼び出されるメソッド」なわけです。ここで、実行する命令を書いておけば、それがイベント発生時に実行されます。このメソッドはどういう意味かなど、今は深く考えないで下さい。「この通りに書けば、イベントの時にこのメソッドが呼び出されるんだ」とだけ知っておけば十分です。
…ここにいろいろ書く…
}
では、今回のサンプルで、actionPerformedで実行している処理を見てみましょう。こういうものでした。
System.exit(0);この「System」ってのは、システム関係を示すクラスだと思って下さい。そして「exit(0)」は、プログラムを終了するメソッドです。まあ、これは「System.exit(0)と書くと終了するのだ」と無条件に暗記してしまうのがいいでしょう。
こうして代理人のクラスは用意できました。が、これだけではダメです。こいつのインスタンスを、使いたい部品に組み込んでやらないといけません。それを行なっているのが、Test5のコンストラクタにある、この部分です。
ClickAction act = new ClickAction();まず最初にClickActionのインスタンスをnewで作って、actに設定していますね。そして、「addActionListener」というメソッドで、これをmybuttonに組み込んでいます。
mybutton.addActionListener(act);
リスナーの組み込みは、全て「add○○Listener」というような形をしています。ActionListenerの組み込みだから、addActionListener。それじゃ、WindowListenerの組み込みならaddWindowListenerか、と思うでしょう? ズバリその通りなんです。ならマウスのイベントは…って、くどいからやめますけど、そんな具合にメソッドでリスナークラスのインスタンスを組み込んで、初めてそれが使えるようになるのですね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ