天天看點

swing滑鼠事件(MouseEvent)監聽器

滑鼠的操作與監聽通過MouseListener接口,主要4個方法

mouseEntered(MouseEvent e)   滑鼠移入元件

mouseExited(MouseEvent e)    滑鼠移出元件

mousePressed(MouseEvent e)   滑鼠按下

mouseReleased(MouseEvent e)  滑鼠松開

完整代碼示範

監聽器類MouseListener作為主類本身來實作

1在Netbean建立Java應用程式,項目DemoMouseEvent 主類DemoMouseEvent

swing滑鼠事件(MouseEvent)監聽器

2主類繼續類JFrame ,監聽器類MouseListener作為主類本身, 可以友善地通路本類中的任何方法和屬性,比如,在主類中的文本框元件。

public class DemoMouseEvent extends JFrame  implements MouseListener{

        private JTextArea text = new JTextArea(); //文本框元件是主類私有屬性

        public DemoMouseEvent()

        {

         Init();       

       }

       public void Init()

{

  //GUI初始化

  //注冊滑鼠事件監聽器

}

       public static void main(String[] args) {

        new DemoMouseEvent();

       }

}

完整代碼如下:

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class DemoMouseEvent extends JFrame  implements MouseListener{

    private JTextArea text = new JTextArea(); //文本框元件是主類私有屬性

    public DemoMouseEvent()

    {

        Init();        

    } 

    public void Init()

    {

        super.setTitle("示範滑鼠事件");// 設定視窗的标題

        JScrollPane root = new JScrollPane(text);// 給面闆增加卷軸框

        root.setBounds(10, 10, 300, 200);// 設定面闆的絕對位置

        super.add(root);// 把面闆加入視窗中

        text.addMouseListener(this);// 給文本框元件增加滑鼠監聽

        super.setSize(310, 210);

        super.setVisible(true);

        super.addWindowListener( //視窗事件

            new WindowAdapter()

            {

            public void windowClosing(WindowEvent arg0)

                {

             System.exit(1);

         }

        }

        );

    }  

    @Override

    public void mouseEntered(MouseEvent e)// 滑鼠進入元件

    {

      text.append("滑鼠進入文本框.\n");

    }

    @Override

    public void mouseExited(MouseEvent e)// 滑鼠退出元件

    {

      text.append("滑鼠退出文本框.\n");

    }

    @Override

    public void mousePressed(MouseEvent e)// 滑鼠按下

    {

      text.append("按下滑鼠.\n");

    }

    @Override

    public void mouseReleased(MouseEvent e)// 滑鼠松開

    {

      text.append("松開滑鼠.\n");

    }

        @Override

    public void mouseClicked(MouseEvent e)

    {

        text.append("點選滑鼠.\n");

    }

    public static void main(String[] args) {

        new DemoMouseEvent();

    }

}

運作效果如下:

swing滑鼠事件(MouseEvent)監聽器