マウスの座標を表示する

MouseMotionListener を implements して、マウスの座標を表示します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして MouseMove.java の名前で保存して下さい。
    //★ MouseMotionListener を implements    前田 稔
    import java.awt.*;
    import java.awt.event.*;
    
    public class MouseMove extends Frame implements MouseMotionListener
    {
        // Main
        public static void main(String args[])
        {   new MouseMove();  }
    
        // Constructor
        MouseMove()
        {   super("Move");
            setSize(200, 150);
            addMouseMotionListener(this);
            setVisible(true);
        }
    
        // MouseListener
        public void mouseMoved(MouseEvent e)
        {   System.out.println("Move  X=" + e.getX() + "  Y=" + e.getY());
        }
    
        public void mouseDragged(MouseEvent e) { }
    }
    
  2. java のソースファイルをコンパイルして class オブジェクトを実行して下さい。
    Window 上でマウスを動かす度に、DOS 画面に沢山のメッセージが表示されます。

プログラムの説明

  1. MouseMotionListener を implements してマウスの座標を表示します。
    AWT も Swing も同じ要領なので、今回は AWT を使っています。
  2. Listener を使う時は java.awt.event.* をインポートして下さい。
    class MouseMove で Frame を継承して、MouseMotionListener を実装します。
        import java.awt.*;
        import java.awt.event.*;
    
        public class MouseMove extends Frame implements MouseMotionListener
        {
            // Main
            public static void main(String args[])
            {   new MouseMove();  }
        
  3. MouseMove のコンストラクタです。
    addMouseListener(this) で、現在の Object Class を Listener に関連付けます。
        MouseMove()
        {   super("Move");
            setSize(200, 150);
            addMouseMotionListener(this);
            setVisible(true);
        }
        
  4. マウスを移動すると mouseMoved() メソッドが呼び出されます。
    e.getX() がマウスのX座標で、e.getY() がY座標です。
        public void mouseMoved(MouseEvent e)
        {   System.out.println("Move  X=" + e.getX() + "  Y=" + e.getY());
        }
        
  5. MouseMotionListener を implements するときは、下記のメソッドを定義しなければなりません。
        public void mouseDragged(MouseEvent e) { }
        

【NOTE】

Listener とは、イベントを監視し、イベント発生時に対応するアクションを実行するオブジェクトです。
MouseListener を実装するには、必要の有無に関わらず全てのインタフェースを実装する必要があります。
・public void mouseClicked(MouseEvent e) { }
・public void mousePressed(MouseEvent e) { }
・public void mouseReleased(MouseEvent e) { }
・public void mouseEntered(MouseEvent e) { }
・public void mouseExited(MouseEvent e) { }

同様に MouseMotionListener を実装するときも、全てのインタフェースを実装しなければなりません。
・public void mouseDragged(MouseEvent e) { }
・public void mouseMoved(MouseEvent e) { }

この面倒を簡略するために、インタフェースを複数持つものについてはアダプターが用意されていて、 サブクラスとして定義することにより、必要なインタフェースのみを実装することが可能になります。
MouseMotionListener をサブクラス化する方法は Mouse の操作で矩形を描画 を参照して下さい。

超初心者のプログラム入門(Java2)