java 双击触发事件_java鼠标双击事件怎么实现
很多人都学习过java,但是你知道java鼠标双击事件怎么实现吗,跟着学习啦小编一起学习ava鼠标双击事件。
java鼠标双击事件的实现方法
鼠标的单双击事件在很多时候对我们帮助很大,但是在JAVA中却没有给出鼠标双击事件.我们可以通过事件源e.getClickCount()==2来判断鼠标点击次数来实现鼠标双击事件,例如:
public class MyMouseListener
extends java.awt.event.MouseAdapter ...{
public void mouseClicked(MouseEvent e) ...{
System.out.println("clicked");
int clickTimes = e.getClickCount();
if (clickTimes == 2) ...{
System.out.println("Doublc Clicked!");
}
}
}
但是这样并没有达到我们的要求,因为在每次触发双击事件的同时会触发单击事件.所以我们试图改进以上方案,不使用系统提供的 e.getClickCount()方法.可以考虑当第一次单击鼠标的时候让鼠标单击事件延时0.2秒执行,而在这段时间里等待第二次单击,如果有第二次单击,那么我们执行双击事件任务,取消单击任务;如果在这段时间没有等到再次单击,那么执行单击任务.
下面是用定时器延时单击事件实现鼠标双击事件,单击和双击事件互不影响!
public class MyMouseListener
extends java.awt.event.MouseAdapter ...{
private static boolean flag=false;//用来判断是否已经执行双击事件
private static int clickNum=0;//用来判断是否该执行双击事件
public void mouseClicked(MouseEvent e) ...{
final MouseEvent me=e;//事件源
this.flag=false;//每次点击鼠标初始化双击事件执行标志为false
if (this.clickNum == 1) ...{//当clickNum==1时执行双击事件
this.mouseDoubleClicked(me);//执行双击事件
this.clickNum=0;//初始化双击事件执行标志为0
this.flag=true;//双击事件已执行,事件标志为true
return;
}
//定义定时器
java.util.Timer timer=new java.util.Timer();
//定时器开始执行,延时0.2秒后确定是否执行单击事件
timer.schedule(new java.util.TimerTask() ...{
private int n=0;//记录定时器执行次数
public void run() ...{
if(MyMouseListener.flag)...{//如果双击事件已经执行,那么直接取消单击执行
n=0;
MyMouseListener.clickNum=0;
this.cancel();
return;
}
if (n == 1) ...{//定时器等待0.2秒后,双击事件仍未发生,执行单击事件
mouseSingleClicked(me);//执行单击事件
MyMouseListener.flag = true;
MyMouseListener.clickNum=0;
n=0;
this.cancel();
return;
}
clickNum++;
n++;
}
},new java.util.Date(),200);
}
/** *//**
* 鼠标单击事件
* @param e 事件源参数
*/
public void mouseSingleClicked(MouseEvent e)...{
System.out.println("Single Clicked!");
}
/** *//**
* 鼠标双击事件
* @param e 事件源参数
*/
public void mouseDoubleClicked(MouseEvent e)...{
System.out.println("Doublc Clicked!");
}
}
public class MyMouseListener extends MouseAdapter {
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 3) {
// 处理鼠标三击
} else if (evt.getClickCount() == 2) {
// 处理鼠标双击
}
}
}
处理鼠标右键
public mouseClicked(MouseEvent e){
if(e.isMetaDown()){//检测鼠标右键单击
}
如何在小程序中处理鼠标中间键?
new MyMouseListener());
public class MyMouseListener extends MouseAdapter {
public void mouseClicked(MouseEvent evt) {
if ((evt.getModifiers() &?
InputEvent.BUTTON1_MASK) != 0) {
processLeft(evt.getPoint());
//处理鼠标左键单击
}
if ((evt.getModifiers() &?
InputEvent.BUTTON2_MASK) != 0) {
processMiddle(evt.getPoint());
//处理鼠标中间键单击
}
if ((evt.getModifiers() &?
InputEvent.BUTTON3_MASK) != 0) {
processRight(evt.getPoint());
//处理鼠标右键单击
java鼠标双击事件怎么实现相关文章:
java 双击触发事件_java鼠标双击事件怎么实现相关推荐
- java监听鼠标双击_java鼠标双击事件 java鼠标双击监听
爱学习的小伙伴们,可能都学习过java,但是你知道java鼠标双击事件是怎么实现的吗?不知道的话跟着小编一起来学习了解java鼠标双击事件吧. java鼠标双击事件实例介绍 public class ...
- 用鼠标按下事件和鼠标松开事件实现长按事件
用鼠标按下事件和鼠标松开事件实现长按事件 我这次要分享的是,用鼠标按下事件(onmousedown)和鼠标松开事件(onmouseup)实现长按事件,在这个长按事件里面我让它实现让数值自增的功能.首先 ...
- 22081-11-16 鼠标双击事件和鼠标移动事件
.h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QKeyEvent> #include & ...
- java响应鼠标滚轮事件_鼠标滚轮事件MouseWheel
其实在大多数浏览器(IE6, IE7, IE8, Opera 10+, Safari 5+,Chrome)中,都提供了 "mousewheel" 事件.但杯具的是 Firefox ...
- Java 动作事件_java按钮动作事件
1. Java事件处理三要素: 1) 事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件: 2) 事件(Event):事件封装了组件上 ...
- JS拖动事件(鼠标拖动事件)手指事件(PC移动端拖拽)
写了好几次的PC端和移动端的拖拽效果了,每次都要重新查阅资料,现在做个总结记录,方便以后随时查阅 要想写拖拽事件,首先得了解三块知识点: PC的鼠标拖动事件 移动端的手指事件 能拿到被移动元素的高宽, ...
- Qt:鼠标事件(鼠标移动事件、鼠标按下事件、鼠标释放事件、进入窗口区域、离开窗口区域)
鼠标事件,本质是重写重写QWidgt中虚函数. 以下程序是获取鼠标坐标: mylabel.h #ifndef MYLABEL_H #define MYLABEL_H #include <QLab ...
- WPF经典教程--键盘输入事件, 鼠标输入事件, 焦点处理
一.键盘和键盘事件 WPF提供了一个基本的键盘类(System.Input.Keyboard类),该类提供键盘相关的事件,方法和属性,以提供有关键盘状态的信息.键盘事件也由诸如UIElement XA ...
- css标签鼠标移动事件,CSS鼠标响应事件经过、移动、点击示例介绍
几种鼠标触发CSS事件. 说明: onMouseDown 按下鼠标时触发 onMouseOver 鼠标经过时触发 onMouseUp 按下鼠标松开鼠标时触发 onMouseOut 鼠标移出时触发 on ...
最新文章
- php函数,static,globalkeyword及三种变量作用域
- 20160406作业
- 物联网通信协议_自动化机器上的物联网网关的目的是什么?
- ejb能调用另一个ejb吗_异步EJB只是一个Gi头吗?
- Maven的资源坐标
- 总用量的统计_每月公开使用量!广州市开启机制砂信息采集工作
- 使用Python和Numpy进行波士顿房价预测任务(二)【深度学习入门_学习笔记】
- currenthashmap扩容原理_HashMap 深入解析(二)
- python : sha256 、ripemd160
- 浅析内网即时通讯工具的安全性如何
- P1548 [NOIP1997 普及组] 棋盘问题
- 解决 Javascript 中 atob 方法解码中文字符乱码问题
- NOIP2012 提高组 Day 2
- mysql配置和优化
- System.Threading.ThreadAbortException: 正在中止线程。
- Pinyin4j生成城市编码和简码
- 手机屏和大屏LCD显示面板接口(和处理器连接的接口类似12864等单片机处理器和屏接口的8086,SPI等并口串口屏以及RGB屏接口)LVDS接口常见于液晶电视中。eDP,LVDS,MIPI,HDMI
- 信息发布服务器出问题,电力网故障信息发布系统
- Matlab图像处理实例讲解(杨丹、赵海滨
- 如何建设与推广地方旅游网站