JAVA:事件监听器之鼠标监听

时间:2021-12-29 22:38:37

addMouseListener

public void addMouseListener(MouseListener l)

添加指定的鼠标侦听器,以接收发自此组件的鼠标事件。如果侦听器 lnull,则不会抛出异常并且不执行动作。 

java.awt.event
接口 MouseListener

用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。(要跟踪鼠标移动和鼠标拖动,请使用 MouseMotionListener。)

旨在处理鼠标事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseAdapter(仅重写所需的方法)

然后使用组件的 addMouseListener 方法将从该类所创建的侦听器对象向该组件注册。当按下、释放或单击(按下并释放)鼠标时会生成鼠标事件。鼠标光标进入或离开组件时也会生成鼠标事件。发生鼠标事件时,将调用该侦听器对象中的相应方法,并将 MouseEvent 传递给该方法。                                  

 

方法摘要
void mouseClicked(MouseEvent e)
鼠标按键在组件上单击(按下并释放)时调用。
void mouseEntered(MouseEvent e)
鼠标进入到组件上时调用。
void mouseExited(MouseEvent e)
鼠标离开组件时调用。
void mousePressed(MouseEvent e)
鼠标按键在组件上按下时调用。
void mouseReleased(MouseEvent e)
鼠标按钮在组件上释放时调用。

 ——摘自:JDK6API

 

例子:

 1 import javax.swing.*;
 2 import java.awt.*;
 3 import java.awt.event.*;
 4 public class MouseDemo
 5 {
 6     //定义该图形中所需的组件的引用
 7     private Frame f;
 8     private Button bt; 
 9     
10     //方法
11    MouseDemo()//构造方法
12     {
13         madeFrame();
14     }
15     
16     public void madeFrame()
17     {
18         f = new Frame("My Frame");
19         
20         //对Frame进行基本设置。
21         f.setBounds(300,100,600,500);//对框架的位置和大小进行设置
22         f.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));//设计布局
23         
24         bt = new Button("My Button");
25         
26         //将组件添加到Frame中
27         f.add(bt);
28         
29         //加载一下窗体上的事件
30         myEvent();
31         
32         //显示窗体
33         f.setVisible(true);
34     }
35     
36     private void myEvent()
37     {
38         f.addWindowListener(new WindowAdapter()//窗口监听
39         {
40             public void windowClosing(WindowEvent e)
41             {
42                 System.out.println("窗体执行关闭!");
43                 System.exit(0);
44             }
45         });
46 
47         bt.addActionListener(new ActionListener()//按钮监听
48         {
49             public void actionPerformed(ActionEvent e)
50             {
51                  System.out.println("按钮活动了!");
52             }
53         });
54         bt.addMouseListener(new MouseAdapter()//鼠标监听
55         {
56             private int count = 1; 
57             private int mouseCount = 1;
58             public void mouseEntered(MouseEvent e)
59             {
60                 System.out.println("鼠标监听"+count++);
61             }
62             public void mouseClicked(MouseEvent e)
63             {
64                 if(e.getClickCount()==2)
65                    System.out.println("鼠标被双击了");
66                 else System.out.println("鼠标被点击"+mouseCount++);
67             }
68         });
69     }
70     
71     public static void main(String[] agrs)
72     {
73         new MouseDemo();
74     }
75 }