26.1.9.19 アダプタ

ボタンと同じように"MouseListener"を使った例です. MouseListener はインターフェースと呼ばれるクラスで,本体を指定しない5つのメソッド(下のプログラム参照)からなります.つまり,「メソッド名と呼出し方法だけを定義」しているクラスです.インターフェースはそれ自体では使うことができず,かならず継承(extends)して使います.その際には,ここで利用する メソッド"mousePressed"以外にも,ここでは使わない4個のメソッドを,本体を空(カラ)として定義しておく必要があります.

import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
public class Mouse0 extends Applet
                   implements MouseListener{  //リスナーを指定
  int x = 0, y = 0;
  public void init(){
     addMouseListener(this); 
  }
  public void mousePressed(MouseEvent e){
     x = e.getX();
     y = e.getY();
     repaint();
  }
  public void mouseReleased(MouseEvent e){ }// 使用しない (ボタンを離す)
  public void mouseClicked(MouseEvent e){ }// 使用しない (ボタンを押して離す)
  public void mouseEntered(MouseEvent e){ }// 使用しない (アプレット領域に入った)
  public void mouseExited(MouseEvent e){ }// 使用しない (アプレット領域から出た)
  public void paint(Graphics g){
     g.drawString("("+ x +", "+ y +")", 10, 20);
     g.drawRect(x-5, y-5, 10, 10);
  }
}

fileMouse0.java (iso-2022-jp)

アプレット"Mouse1"で使ったクラス"MouseAdapter"は,それ自身は"MouseListener"を引き継ぎ,(必要とされるすべてのメソッドを空として定義)したものです.したがって,これを引きついだクラスでは,必要なメソッドだけをさらに上書きすればよいことになります.