关于鼠标移动监听接口:MouseMotionListener

116 篇文章 22 订阅

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

MouseMotionListener 用于接收组件上的鼠标移动事件的侦听器接口。旨在处理鼠标移动事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseMotionAdapter(仅重写有用的方法)。

然后使用组件的addMouseMotionListener 方法将从该类所创建的侦听器对象向该组件注册。移动或拖动鼠标时会生成鼠标移动事件。(将生成很多此类事件)。发生鼠标移动事件时,将调用该侦听器对象中的相应方法,并将MouseEvent 传递给该方法。

此接口包括两个方法:

1.public void mouseDragged(MouseEvent e)

  鼠标按键在组件上按下并拖动时调用。(处理鼠标拖动事件)

2.public void mouseMoved(MouseEvent e)

鼠标光标移动到组件上但无按键按下时调用。(处理鼠标移动事件)

下面看一个直接实现MouseMotionListener接口的例子:鼠标移动或拖动时,给出提示并显示鼠标所在位置的坐标。

package cn;

import java.awt.*;
import java.awt.event.*;

import javax.swing.JFrame;
import javax.swing.JButton;

public class MyMouseMotionListener implements MouseMotionListener {

	JFrame myframe; // JFrame通常默认使用BorderLayout布局管理器的
	TextArea tf;
	JButton exitButton;
	int number = 1;

	public MyMouseMotionListener() {
		Label label = new Label("click and drag the mouse");
		myframe = new JFrame("MyMouseMotionListener");
		tf = new TextArea();
		exitButton = new JButton("退出");

		tf.addMouseMotionListener(this);
		exitButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});

		myframe.add(label, BorderLayout.NORTH);
		myframe.add(tf, BorderLayout.CENTER);
		myframe.add(exitButton, BorderLayout.SOUTH);
		myframe.setSize(400, 300);
		myframe.setVisible(true);

	}

	public static void main(String[] args) {
		new MyMouseMotionListener();

	}

	@Override
	// 负责处理鼠标拖动事件
	public void mouseDragged(MouseEvent e) {
		//getX(),getY():获取鼠标的坐标位置
		String s = number++ + "" + "the mouse is draggered:x=" + e.getX()
				+ "y=" + e.getY() + "\n";
		tf.append(s);
	}

	@Override
	// 负责处理鼠标移动事件
	public void mouseMoved(MouseEvent e) {
		String s = number++ + "" + "the mouse is moving:x=" + e.getX() + "y="
				+ e.getY() + "\n";
		tf.append(s);
	}
}

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Java中,可以使用MouseListenerMouseMotionListener接口监听鼠标事件MouseListener接口定义了以下方法: - void mouseClicked(MouseEvent e):当鼠标在组件上单击时调用。 - void mouseEntered(MouseEvent e):当鼠标进入组件时调用。 - void mouseExited(MouseEvent e):当鼠标离开组件时调用。 - void mousePressed(MouseEvent e):当鼠标在组件上按下时调用。 - void mouseReleased(MouseEvent e):当鼠标在组件上释放时调用。 MouseMotionListener接口定义了以下方法: - void mouseDragged(MouseEvent e):当鼠标在组件上拖动时调用。 - void mouseMoved(MouseEvent e):当鼠标在组件上移动时调用。 要使用这些接口,需要实现它们并将其添加到组件中。例如,在一个JPanel上监听鼠标事件: ```java import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JPanel; public class MyPanel extends JPanel implements MouseListener { public MyPanel() { addMouseListener(this); // 添加MouseListener接口 } @Override public void mouseClicked(MouseEvent e) { // 鼠标单击事件 } @Override public void mouseEntered(MouseEvent e) { // 鼠标进入事件 } @Override public void mouseExited(MouseEvent e) { // 鼠标离开事件 } @Override public void mousePressed(MouseEvent e) { // 鼠标按下事件 } @Override public void mouseReleased(MouseEvent e) { // 鼠标释放事件 } } ``` 要监听鼠标拖动和移动事件,可以将MouseMotionListener接口添加到组件中: ```java import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JPanel; public class MyPanel extends JPanel implements MouseListener, MouseMotionListener { public MyPanel() { addMouseListener(this); // 添加MouseListener接口 addMouseMotionListener(this); // 添加MouseMotionListener接口 } // 实现MouseListener接口方法(略) @Override public void mouseDragged(MouseEvent e) { // 鼠标拖动事件 } @Override public void mouseMoved(MouseEvent e) { // 鼠标移动事件 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u010142437

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值