java实用教程——组件及事件处理——MouseEvent事件

这篇博客详细介绍了在Java中如何处理MouseEvent,包括添加MouseListener以响应鼠标按下、释放、单击、进入和退出事件,以及使用MouseMotionListener处理鼠标拖动和移动事件。通过示例展示了获取鼠标坐标并实现组件拖动的方法。
摘要由CSDN通过智能技术生成

MouseEvent事件

任何组件上都可以发生鼠标事件,如鼠标进入组件、退出组件、在组件上方单击鼠标、拖动鼠标等都触发鼠标事件,即导致MouseEvent类自动创建一个
事件对象,事件源注册监视器的方法是addMouseListener(MouseListener listener);

➊使用MouseIistener接口处理鼠标事件

使用MouseListener接口可以处理以下5种操作触发的鼠标事件:
在事件源上按下鼠标键。
在事件源上释放鼠标键
在事件源上单击鼠标。
鼠标进入事件源。
鼠标退出事件源。

MouseEvent类中有下列几个重要的方法
getX() 获取鼠标指针在事件源坐标系中的x坐标。

getY()获取鼠标指针在事件源坐标系中的y坐标。

●getModifiers()获取鼠标的左键或右键。鼠标的左键和右键分别使用inputEvent类中的常量BUTTONI MASK和BUTTON3 _MASK来表示
●getClickCount() 获取鼠标被单击的次数。
●getSource() 获取发生鼠标事件的事件源。
MouseListener接口中有如下方法:
●mousePressed(MouseEvent) 负责处理在组件上按下鼠标键触发的鼠标事件。即,当你在事件源按下鼠标键时,监视器调用接口中的这个方法对事件做出处理。
●mouseReleased(MouseEvent) 负责处理在组件上释放鼠标键触发的鼠标事件。即,当你在事件源释放鼠标键时,监视器调用按口中的这个方法对事件做出处理。
●mouseEntered(MouseEvenr) 负责处理鼠标进入组件触发的鼠标事件。即,当鼠标指针进入组件时,监视器调用接口中的这个方法对事件做出处理。
●mouseExited(MouseEvent)负责处理鼠标离开组件触发的鼠标事件。即,当鼠标指针离开容器时,监视器调用接口中的这个方法对事件做出处理。
●mouseClicked(MouseEvent)负责处理在组件上单击鼠标键触发的鼠标事件。即,当单击鼠标键时,监视器调用接I口中的这个方法对事件做出处理。

下面的例子10 中,分别监视按钮、文本框和窗口上的鼠标事件,当发生鼠标事件时,获取鼠标指针的坐标值,注意,事件源的坐标系的左上角是原点。


public class Example9_10 {
   
	   public static void main(String args[]) {
   
	       WindowMouse win=new WindowMouse();
	       win.setTitle("处理鼠标事件"); 
	       win.setBounds(10,10,560,380);
	   }
	}



import java.awt.*;
import javax.swing.*;
public class WindowMouse extends JFrame {
   
    /**
	 * 
	 */

	JButton button;
    JTextArea area;
    MousePolice police; 
    WindowMouse() {
   
       init();
       setVisible(true);
       setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
    }
    void init() {
   
       setLayout(new FlowLayout());
       area = new JTextArea(10,28);
       Font font = new Font("宋体",Font.PLAIN,22);
       area.setFont(font);
       police = new MousePolice();
       police.setView(this);//将当前窗口传递给police组合的窗口 
       button = new JButton(
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值