マウスクリックの座標を表示する

MouseListener を implements して、クリックされた座標を表示します。

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

プログラムの作成

  1. メモ帳などでタイプして MouseImp.java の名前で保存して下さい。
    //★ MouseListener を implements    前田 稔
    import java.awt.*;
    import java.awt.event.*;
    
    public class MouseImp extends Frame implements MouseListener
    {
        // Main
        public static void main(String args[])
        {   new MouseImp();  }
    
        // Constructor
        MouseImp()
        {   super("Click");
            addMouseListener(this);
            setSize(300, 100);
            setVisible(true);
        }
    
        // MouseListener
        public void mouseClicked(MouseEvent e)
        {   System.out.println("Click  X=" + e.getX() + "  Y=" + e.getY());
        }
    
        public void mousePressed(MouseEvent e){}
        public void mouseReleased(MouseEvent e){}
        public void mouseEntered(MouseEvent e){}
        public void mouseExited(MouseEvent e){}
    }
    
  2. java のソースファイルをコンパイルして class オブジェクトを実行して下さい。
    Window 上でマウスをクリックすると DOS 画面に座標が表示されます。

プログラムの説明

  1. MouseListener を implements して、マウスのクリックを検出して座標を表示します。
    AWT も Swing も同じ要領なので、今回は AWT を使っています。
  2. Listener を使う時は java.awt.event.* をインポートして下さい。
    class MouseImp で Frame を継承して、MouseListener を実装します。
        import java.awt.*;
        import java.awt.event.*;
    
        public class MouseImp extends Frame implements MouseListener
        {
            // Main
            public static void main(String args[])
            {   new MouseImp();  }
        
  3. MouseImp のコンストラクタです。
    addMouseListener(this) で、現在の Object Class を Listener に関連付けます。
        MouseImp()
        {   super("Click");
            addMouseListener(this);
            setSize(300, 100);
            setVisible(true);
        }
        
  4. マウスをクリックすると mouseClicked() メソッドが呼び出されます。
    e.getX() がマウスのX座標で、e.getY() がY座標です。
        // MouseListener
        public void mouseClicked(MouseEvent e)
        {   System.out.println("Click  X=" + e.getX() + "  Y=" + e.getY());
        }
        
  5. MouseListener を implements するときは、例え使わなくても下記のメソッドを定義しなければなりません。
        public void mousePressed(MouseEvent e){}
        public void mouseReleased(MouseEvent e){}
        public void mouseEntered(MouseEvent e){}
        public void mouseExited(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) { }

この面倒を簡略するために、インタフェースを複数持つものについてはアダプターが用意されていて、 サブクラスとして定義することにより、必要なインタフェースのみを実装することが可能になります。
MouseListener をサブクラス化する方法は マウスのクリックを検出する を参照して下さい。

java.awt.event の中に用意されている Listener の一覧です。
Listener InterfaceAdapter classListener登録メソッド
ActionListener addActionListener
AdjustmentListener addAdjustmentListener
ComponentListener ComponentAdapter addComponentListener
ContainerListener ContainerAdapter addContainerListener
FocusListener FocusAdapter addFocusListener
ItemListener addItemListener
KeyListener KeyAdapter addKeyListener
MouseListener MouseAdapter addMouseListener
MouseMotionListenerMouseMotionAdapteraddMouseMotionListener
TextListener addTextListener
WindowListener WindowAdapter addWindowListener

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