libro
www.tuyano.com
初心者のためのJava SEプログラミング入門

イベントとイベントリスナー (2/4)

作成:2010-01-14 13:27
更新:2011-10-11 15:16

■ActionListenerクラスを作る

では、ソースコードを見てみましょう。まず、イベント関係のクラスは「java.awt.event」というところにまとめられています。ですから、これを最初にimportしておく必要があります。最初にある「import java.awt.event.*;」は、そのためのものだったわけですね。

そして、Test5クラスとClickActionクラスの2つがある理由も、わかりましたね。Test5が本体で、ClickActionが「代理人クラス」というわけです。では、まず代理人のほうを見ておきましょう。このクラス、最初の定義部分がちょっと変です。
class ClickAction implements ActionListener {
見たことのないものがくっついてますね。「implements ActionListener」というやつです。このActionListenerというのが「代理人の素」です。要するに、この中に代理人の機能がつまってるわけですね。

それなら、これを継承すればいいや…と思った人。よく見るとextendsは使ってませんよ? implementsというものが使ってあります。

この「ActionListener」は、実は「インターフェイス」クラスと呼ばれる、ちょっと特別なクラスなのです。インターフェイスは、詳しく説明するとちょっと難しいのですが、要するに「継承しないで機能だけ使えるようにできる特別なクラス」と思えばよいでしょう。

インターフェイスは、implementsというもので組み込みます。これは、extendsとは別のものなのですね。従って、何かのクラスを継承して(extendsして)も、更に機能を追加できるのです。

Javaでは、継承で使えるのは1つのクラスだけです。「2つのクラスを継承する」ということはできないんです。だから「Frameを継承して、更にイベント処理の機能も欲しい」なんて場合、2つを継承できないのでどちらか1つを諦めないといけない。それじゃまずい…ということで、「継承しないけど機能だけこっそり使える」という仕組みを用意した、それがimplementsで使えるインターフェイスクラスというものです。

まあ、とりあえずは「イベント処理の代理人クラスはimplementsで組み込む」とだけ覚えておけばいいでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのJava SEプログラミング入門」に戻る