BohYoh.comトップページへ
Java FAQ
目次

アプレットにおいてマウスカーソルの座標を取得するにはどうすればよいですか。

 まず、アプレットを実現すクラスにおいて、MouseMotionListenerクラスをインプリメントします。すなわち、以下のようにクラスを実現します。

public class クラス名 extends Applet implements MouseMotionListener { // 中略 }

また、マウス移動のイベントを取得するには、MouseMotionListenerの登録が必要です。もちろん、不要になった時点で解除も行わなければなりません。
 また、このクラス内では、以下に示す二つのメソッドを定義する必要があります。

public void mouseDragged(MouseEvent msEvt) // マウスがドラッグされた public void mouseMoved(MouseEvent msEvt) // マウスが移動した

これらのメソッドでは、“マウスがドラッグされた”あるいは“マウスが移動した”場合に、何を実行すべきかといったアクションを定義します。
 右図のように、マウスの座標を表示するアプレットのプログラム例を示します。

/** マウスの現在位置の座標を表示 */ import java.applet.*; import java.awt.*; import java.awt.event.*; public class MousePosition extends Applet implements MouseMotionListener { static int xp = 0; static int yp = 0; //--- 初期処理 ---// public void init() { addMouseMotionListener(this); // MouseMotionListener登録 } //--- 終了処理 ---// public void destroy() { removeMouseMotionListener(this); // MouseMotionListener解除 } //--- 描画 ---// public void paint(Graphics grh) { grh.drawString(" (" + xp + "," + yp + ")", 20, 20); } //--- マウスがドラッグされた ---// public void mouseDragged(MouseEvent msEvt) { } //--- マウスが移動した ---// public void mouseMoved(MouseEvent msEvt) { xp = msEvt.getX(); yp = msEvt.getY(); repaint(); } }


戻る

BohYoh.comロゴ