MouseListener

広告

ではまずマウスのクリックなどを取り扱うMouseListenerについて見ていきます。MouseListenerの場合のリスナーとメソッドの関係は下記の通りです。

実装するリスナー
  MouseListener

リスナーの登録
  addMouseListener

発生するイベント
  MouseEvent

呼ばれるメソッド
  mouseEntered(MouseEvent e)   マウスがアプレットの上に乗った
  mouseExited(MouseEvent e)    マウスがアプレットの外へ出た
  mousePressed(MouseEvent e)   マウスが押された
  mouseReleased(MouseEvent e)  マウスが押された状態から離された
  mouseClicked(MouseEvent e)   マウスがクリックされた

基本的な使い方などは前のページで見た通りです。

サンプルプログラム

では簡単な例で試してみましょう。各イベントに応じてアプレット上にイベントの種類を表示させるようにしてみます。

EventTest1.java

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;

/*
<applet code="EventTest1.class" codebase="class" width="300" height="100">
</applet>
*/

public class EventTest1 extends Applet implements MouseListener{
  String msg1, msg2, msg3;

  public void init(){
    msg1 = "";
    msg2 = "";
    msg3 = "";
    addMouseListener(this);
  }

  public void paint(Graphics g){
    g.drawString(msg1, 10, 20);
    g.drawString(msg2, 30, 50);
    g.drawString(msg3, 30, 80);
  }

  public void mouseEntered(MouseEvent e){
    msgChange("mouseEntered");
    repaint();
  }

  public void mouseExited(MouseEvent e){
    msgChange("mouseExited");
    repaint();
  }

  public void mousePressed(MouseEvent e){
    msgChange("mousePressed");
    repaint();
  }

  public void mouseReleased(MouseEvent e){
    msgChange("mouseReleased");
    repaint();
  }

  public void mouseClicked(MouseEvent e){
    msgChange("mouseClicked");
    repaint();
  }

  private void msgChange(String msg){
    msg3 = msg2;
    msg2 = msg1;
    msg1 = msg;
  }
}

下記で実際に試して頂くことができます。

EventTest1.html

外部からアプレット上にマウスが入ってきた時

MouseEventテスト

アプレット上でマウスを押した時

MouseEventテスト

アプレット上でマウスを離した時。離したと同時にクリックが行われたと判断されるので、mouseReleasedとmouseClickedが2つ呼ばれます。

MouseEventテスト

アプレット上からマウスが離れた時

MouseEventテスト

( Written by Tatsuo Ikura )