back

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

■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で組み込む」とだけ覚えておけばいいでしょう。


(by. SYODA-Tuyano.)

※リストが表示されない場合

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


   

記事のリストに戻る



PC Site G+ mail