图说MouseListener,MouseListener接口

EPLAN二次开发入门:Visual Studio 2019环境配置与插件调试实战 本文详细介绍了EPLAN二次开发入门的关键步骤,重点讲解如何在Visual Studio 2019中配置开发环境并进行插件调试。通过创建符合命名规范的项目、引用核心API库、实现插件接口以及使用附加进程调试等实战技巧,帮助电气工程师快速掌握EPLAN插件开发,提升自动化设计效率。 阅读详情
图说MouseListener,MouseListener接口
 
参考资料:sun网站上面的两个小程序。
 

这是java提供给侦听器(参照jdk中的翻译叫做侦听器)的接受鼠标事件的两个接口的定义。

 

两个public interface MouseListener extends EventListener

{
    public void mousePressed(MouseEvent e);// 鼠标按键在组件上单击(按下并释放)时调用。
public void mouseReleased(MouseEvent e); //鼠标按钮在组件上释放时调用。    
public void mouseClicked(MouseEvent e);// 鼠标按键在组件上按下时调用。
    public void mouseEntered(MouseEvent e);// 鼠标进入到组件上时调用。
public void mouseExited(MouseEvent e);// 鼠标离开组件时调用。
}

 

public interface MouseMotionListener extends EventListener

{

    public void mouseDragged(MouseEvent e);// 鼠标按键在组件上按下并拖动时调用。

    public void mouseMoved(MouseEvent e);// 鼠标光标移动到组件上但无按键按下时调用。

}

 

PS:在方法的右边是JDK中关于这个方法的描述,显然,上面的描述并未让我们对这几个方法的操作有很好的理解。

例如:public void mouseClicked(MouseEvent e);// 鼠标按键在组件上按下时调用。

       public void mousePressed(MouseEvent e);// 鼠标按键在组件上单击(按下并释放)时调用。

这两个方法就有点含混,当用户点击组件时,是先发生mouseClicked?还是先发生mousePressed?

mouseReleased和mouseClicked又是哪一个先发生呢?

当然凭猜测永远也是得不到答案的。那只能用程序证明:

 

这个程序是用来测试MouseListener接口的

(程序来自 http://java.sun.com/docs/books/tutorial/index.html)

PS:当用户在上面 区域进行鼠标操作时,下面就会有输出用户的鼠标操作的一些信息(按照鼠标

事件发生的先后)留心最后三行。就可以清晰的看出mousePressed,mouseReleased ,mouseClicked之间的的关系了。

 

当用户鼠标刚点击 区域(此时鼠标还未释放,mouseReleased 肯定还没有发生,mouseClicked事件也没有发生),

这时用户有两种选择:

[选择一:鼠标在当前位置释放]:这种情况下连续产生两个鼠标事件,先产生mouseReleased,后产生mouseClicked

[选择二:鼠标拉到另一个地方释放(这种情况很常见,我们在windows下点一文件拖住往其他地方放)]:这时候只发生mouseReleased事件,不发生mouseClicked事件。

 

 

上面输出的信息中也有mouseEntered,mouseExited两个鼠标事件。可以自己运行下程序感受这两个方法。

 

 

下面这个程序用来测试MouseMotionListener

(程序来自 http://java.sun.com/docs/books/tutorial/index.html)

PS:当用户鼠标刚在 区域滑动鼠标时候(这时候没有点住鼠标左键,就叫它滑动)会产生大量的Mousemoved鼠标事件。从上面的输出信息中可以看出来。当用户拉动鼠标的时候(按住鼠标左键,就叫它拉动)会产生大量的mouseDragged鼠标事件(上面没有显示,不过类似)。

这里可以看出来,按住鼠标和不按住鼠标是个互斥操作,所以不可能在一次操作中同时出现mouseDragged和Mousemoved两个事件。

相对于MouseListener接口,MouseMotionListener接口要好理解的多。

  

这是中文JDK关于这两个接口的描述:

 

public interface MouseListener

extends EventListener

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

 

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

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

 

public interface MouseMotionListener
extends EventListener

用于接收组件上的鼠标移动事件的侦听器接口。(对于单击和其他鼠标事件,请使用 MouseListener。)

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

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

 

 

问题:

PS:当鼠标快速移动的时候mouseMoved事件无法即时的响应?

上图是根据在侦听器mouseMoved方法中绘制蓝色小矩形。让鼠标移动时能产生模拟画笔的效果,不过鼠标快速移动时mouseMoved事件好象产生的不是很均匀。中间好多象素都没有产生mouseMoved事件?或者是产生了mouseMoved事件而无法及时调用绘制矩形的方法?

 

 

CVE-2021-22205 GITLAB 未授权 RCE 漏洞 简介 GitLab是由GitLab Inc.开发的一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,可通过Web界面访问公开或私人项目。由于GitLab存在未授权的端点,导致该漏洞在无需进行身份验证的情况下即可进行利用。 漏洞利用 上工具 python3 poc import sys import requests from bs4 import BeautifulSoup requests.packages.urllib3.disable_warnings() def . 阅读详情

相关推荐

open-mmlab / mmpose安装、使用教程

mmpose安装、使用教程mmpose安装教程1. 安装mmcv-full2. 安装MMPose2. 安装mmdet使用教程1. 预测图片2. 预测视频 mmpose mmpose是商汤旗下有又一款好用的工具箱,主要是针对姿态识别任务开发的,包括人体姿态识别和动物姿态识别。里面继承很多现成的网络可以供大家使用,并且提供了训练好的权重。用户可以更具自己的需求训练自己的数据,或者直接应用他们的结果,反正就是很全面啦!!!! github连接:https://github.com/open-mmlab/mmpos

CharmsLUO的博客 1万+

07Java第七课 MouseListener接口——鼠标监听器

概述 MouseListener接口的作用:用于鼠标事件——按下、释放、单击、进入、离开的监听 回顾监听器的实现步骤 1创建一个类实现监听器 关键字:implements 2 在这个类中写实现监听器的所有方法 3 写好每个方法的具体代码 在实现MouseListener接口后,组件调用addMouseListener 方法就完成了对组件进行监听。当按下、释放、单击、进入离开时,将调用监听器对象中的相应方法,并将MouseEvent传递给该方法。 MouseEvent:鼠标事件信息类,获取鼠标在

m0_54108654的博客 6819

【GNSS/Linux】BKG Ntrip Client (BNC) 的编译与安装

【GNSS/Linux】BKG Ntrip Client (BNC) 的编译与安装 1. BNC软件 1.1 软件介绍 The BKG Ntrip Client (BNC) is an Open Source multi-stream client program designed for a variety of real-time GNSS applications. It was primarily designed for receiving data streams from any Ntrip

小马甲的新马甲 7803

关于MouseListener接口的简单使用

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) 用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。(要跟踪鼠标移动和鼠标拖动,请使用 MouseMotionListener。) 旨在处理鼠标事件的类要么实现此接口(及其包含的所有方...

孤云博客 3万+

一文搞懂STM32定时器翻转模式(产生多路频率、占空比的PWM)

(产生多路频率、占空比的PWM)

weixin_56688599的博客 7934

深入了解 CPU 的型号、代际架构与微架构!

深入了解 CPU 的型号、代际架构与微架构!

欢迎朋友,我是一名十多年开发经验的新手,希望多多指教。 3195

java笔记 MouseListener 与 MouseMotionListener

一.鼠标点击事件 MouseListener 这个接口MouseListener总共有五个函数 1.mousePressed(MouseEvent e) 按下触发事件 2.mouseReleased(MouseEvent e) 释放触发事件 3.mouseEntered(MouseEvent e) 进入组件触发事件 4.mouseExited(MouseEvent e) 离开组件触发事件 5.mouseClicked(MouseEvent e) 单击触发事件 还有MouseEvent的5个方法(不

yogur_father的博客 2689

Ollama+FAISS+Embedding+Rerank+LLM 详细部署指南

下载安装Ollama 双击运行安装程序 安装完成后会自动启动服务 修改默认安装路径(避免C盘爆满) 或使用PowerShell: 验证安装 Linux系统部署: (二)准备模型 1. 拉取Embedding模型 2. 拉取LLM模型 注意:原文中提到的可能需要从自定义仓库拉取: 3. 下载Rerank模型 (三)安装依赖库 创建项目目录和虚拟环境: 二、主要功能实现 项目结构 (一)配置文件(config/config.yaml) (二)文本分块策略实现 创建 : (三)文档读取

AI技术改变世界 1576

【Java】鼠标监听器MouseListener和MouseMotionListener的使用

鼠标监听器MouseListener 监听鼠标事件MouseEvent。 相应事件和处理方法 鼠标事件         处理方法 MOUSE_CLICKED    MouseClicked (MouseEvent)    鼠标点击(单或双) MOUSE_PRESSED    MousePressed (MouseEvent)    鼠标按下 MOUSE_RELEASED   Mouse

欲买桂花同载酒,终不似,少年游。 4万+

用python提取PDF中各类文本内容的方法

用python提取PDF中各类文本内容的方法

安静的软件工程师 6086

如何用IDEA查看jar包中代码

我们在使用Java进行开放时经常会需要下载些第三方的jar包进行相应的开发。有时候相关jar包的使用文档不足,满足不了我们的特定开发使用要求,这就需要我们查看jar包内的相关代码逻辑,本文将基于IDEA工具介绍如何查看相关jar包的代码逻辑

mystonelxj的博客 2280

鼠标监听

图说MouseListener,MouseListener接口   参考资料:sun网站上面的两个小程序。   这是java提供给侦听器(参照jdk中的翻译叫做侦听器)的接受鼠标事件的两个接口的定义。         两个public interface MouseListener extends EventListener {     public void mousePres

kejiaming的专栏 938

主题033:燃烧反应工程

燃烧反应工程(Combustion Reaction Engineering)是研究燃料与氧化剂发生剧烈氧化反应的科学,涉及化学反应动力学、流体力学、传热传质等多个学科。燃烧是人类利用能源的主要方式,广泛应用于发电、交通运输、工业加热等领域。燃烧反应通常通过自由基链式反应进行。链引发:RH+O2⟶R⋅+HO2⋅ RH + O_2 \longrightarrow R^\cdot + HO_2^\cdot RH+O2​⟶R⋅+HO2⋅​链传递:R⋅+O2⟶RO2⋅ R^\cdot + O_2 \longrigh

kkchenjj的博客 230

JAVA鼠标移动显示信息_java – JFreeChart:将鼠标附近的鼠标坐标显示为提示(鼠标移动时)...

我想要的是,在XYPlot上,鼠标的坐标显示为鼠标附近的提示,当(鼠标)仅在图表上移动时!换句话说,当十字准线移动到另一个点时,坐标值的定位也会在十字准线之后移动.此外,还将绘制1条水平线和1条垂直线,它们专门与鼠标所在的点相交.这可能吗?到目前为止,我可以使用ChartMouseListener和chartMouseMoved方法获取坐标并打印在控制台上.这是我的项目以及我希望如何成为鼠标图表....

weixin_28487725的博客 741

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jfreechar折线图拐点注册点击事件

swing开发jfreechar折线图拐点注册点击事件概述实现代码 概述 (1)、jfreechart是一个优秀的开源chart软件。利用jfreechart可以绘制出各种丰富和优美的图形。但是在jfreechart的图上对于鼠标的支持不很充分,对于鼠标的clicked、moved、pressed、released、entered、exited的事件只支持了两个clicked和moved(不知道为什么?),幸运的是jfreechart是一个开源的软件,可以对于它的实现进行升级,在它传统的功能基础上,实现自己

falling__star的博客 472

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

MouseListener和MouseMotionListener 接口

两个 public interface MouseListener extends EventListener {     public void mousePressed(MouseEvent e);//鼠标按键在组件上单击(按下并释放)时调用。 public void mouseReleased(MouseEvent e); //鼠标按钮在组件上释放时调用。    public

tanhaizhiguang的专栏 2126

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) MouseMotionListener 用于接收组件上的鼠标移动事件的侦听器接口。旨在处理鼠标移动事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseMotionAdapter(仅重写有用的方法...

孤云博客 8377

MouseListener与MouseAdapter的区别(适配器和相应接口的区别)

  adapter意为适配器。 我们知道当一个类实现一个接口时,即使不准备使用某个方法,也必须给出接口中所有方法的实现,适配器可以替代接口来处理事件,当java提供处理事件的接口中多于一个方法时,java就相应的提供一个适配器类,比如:MouseAdapter,windowAdapter等等。 适配器已经实现了相应的接口,例如MouseAdapter类实现了MouseListener接口,因...

hunt_er的博客 9843

【Java】鼠标监听器MouseListener、MouseMotionListener和MouseWheelListener的使用

鼠标监听器MouseListener监听鼠标事件MouseEvent。相应事件和处理方法鼠标事件         处理方法MOUSE_CLICKED    MouseClicked (MouseEvent)    鼠标点击(单或双)MOUSE_PRESSED    MousePressed (MouseEvent)    鼠标按下MOUSE_RELEASED   MouseReleased(Mou...

爱的叹息的专栏 2万+

鼠标动作监听类MouseListener

<span style="font-size:14px;">import java.awt.event.ActionEvent ; import java.awt.event.ActionListener ; import java.awt.event.WindowListener ; import java.awt.event.WindowAdapter ; im...

weixin_30945039的博客 398

java-鼠标监听(MouseListener、MouseMotionListener)-鼠标事件(MouseEvent)

public class APP { public static void main(String[] args) { //第一种 new test(); //第二种 test1 t=new test1(); t.actionss(); } }import java.awt.Color; impor

冰河家园的博客 3万+

MouseMotionListener的使用:

下面是讨论MouseMotionListener的使用时机,它提供的下面的两个方法,可让你随时掌握鼠标的坐标,并处理拖曳鼠标 的操作。 下面的范例让你知道鼠标在JFrame上的坐标,并拖曳出直线来。例子:MouseDemo3.java import java.awt.*; import java.awt.event.*; import javax.swing.*;/*为了达到画线的功能,我们分别i

Control Complexity 7086

High-speed Charting Control(MFC绘图控件)--MFC绘图Demo(包含鼠标响应)

首先我们先上效果图,如果你需要这样的Demo请点击此处下载:High-speed Charting Control--MFC绘图Demo 在开始之前,我们首先推荐一篇博客,该博客主要对该控件的英文开发文档进行了翻译,如果各位需要进一步开发该控件的其他功能可以详细阅读该博客或官方文档:High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件 接...

土豪gold的博客 1万+

Java GUI之MouseListener、MouseMotionListener

用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。 public interface MouseListenerextends EventListener (要跟踪鼠标移动和鼠标拖动,请使用 MouseMotionListener。) 旨在处理鼠标事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseAdapter(仅重写所需

followwwind的博客 734

Java 习题9 参考答案及解析

1.问答题(1)JFrame类的对象的默认布局是什么布局? (2)一个容器对象是否可以使用add方法添加一个JFrame窗口? (3)JTextField可以触发什么事件? (4)JTextArea中的文档对象可以触发什么类型的事件? (5)MouseListener接口中有几个方法? (6)处理鼠标拖动触发的MouseEvent事件需要使用哪些接口?问答题解析1.Frame容器的默认布局

Rainary 3万+
上一篇: 类测试和Junit基础
下一篇: AWT事件处理机制学习
飞羽飞之猪
博客等级 码龄21年 127粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值