很多人都学习过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鼠标双击事件怎么实现相关推荐

  1. java监听鼠标双击_java鼠标双击事件 java鼠标双击监听

    爱学习的小伙伴们,可能都学习过java,但是你知道java鼠标双击事件是怎么实现的吗?不知道的话跟着小编一起来学习了解java鼠标双击事件吧. java鼠标双击事件实例介绍 public class ...

  2. 用鼠标按下事件和鼠标松开事件实现长按事件

    用鼠标按下事件和鼠标松开事件实现长按事件 我这次要分享的是,用鼠标按下事件(onmousedown)和鼠标松开事件(onmouseup)实现长按事件,在这个长按事件里面我让它实现让数值自增的功能.首先 ...

  3. 22081-11-16 鼠标双击事件和鼠标移动事件

    .h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QKeyEvent> #include & ...

  4. java响应鼠标滚轮事件_鼠标滚轮事件MouseWheel

    其实在大多数浏览器(IE6, IE7, IE8, Opera 10+, Safari 5+,Chrome)中,都提供了 "mousewheel" 事件.但杯具的是 Firefox ...

  5. Java 动作事件_java按钮动作事件

    1. Java事件处理三要素: 1) 事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件: 2) 事件(Event):事件封装了组件上 ...

  6. JS拖动事件(鼠标拖动事件)手指事件(PC移动端拖拽)

    写了好几次的PC端和移动端的拖拽效果了,每次都要重新查阅资料,现在做个总结记录,方便以后随时查阅 要想写拖拽事件,首先得了解三块知识点: PC的鼠标拖动事件 移动端的手指事件 能拿到被移动元素的高宽, ...

  7. Qt:鼠标事件(鼠标移动事件、鼠标按下事件、鼠标释放事件、进入窗口区域、离开窗口区域)

    鼠标事件,本质是重写重写QWidgt中虚函数. 以下程序是获取鼠标坐标: mylabel.h #ifndef MYLABEL_H #define MYLABEL_H #include <QLab ...

  8. WPF经典教程--键盘输入事件, 鼠标输入事件, 焦点处理

    一.键盘和键盘事件 WPF提供了一个基本的键盘类(System.Input.Keyboard类),该类提供键盘相关的事件,方法和属性,以提供有关键盘状态的信息.键盘事件也由诸如UIElement XA ...

  9. css标签鼠标移动事件,CSS鼠标响应事件经过、移动、点击示例介绍

    几种鼠标触发CSS事件. 说明: onMouseDown 按下鼠标时触发 onMouseOver 鼠标经过时触发 onMouseUp 按下鼠标松开鼠标时触发 onMouseOut 鼠标移出时触发 on ...

最新文章

  1. php函数,static,globalkeyword及三种变量作用域
  2. 20160406作业
  3. 物联网通信协议_自动化机器上的物联网网关的目的是什么?
  4. ejb能调用另一个ejb吗_异步EJB只是一个Gi头吗?
  5. Maven的资源坐标
  6. 总用量的统计_每月公开使用量!广州市开启机制砂信息采集工作
  7. 使用Python和Numpy进行波士顿房价预测任务(二)【深度学习入门_学习笔记】
  8. currenthashmap扩容原理_HashMap 深入解析(二)
  9. python : sha256 、ripemd160
  10. 浅析内网即时通讯工具的安全性如何
  11. P1548 [NOIP1997 普及组] 棋盘问题
  12. 解决 Javascript 中 atob 方法解码中文字符乱码问题
  13. NOIP2012 提高组 Day 2
  14. mysql配置和优化
  15. System.Threading.ThreadAbortException: 正在中止线程。
  16. Pinyin4j生成城市编码和简码
  17. 手机屏和大屏LCD显示面板接口(和处理器连接的接口类似12864等单片机处理器和屏接口的8086,SPI等并口串口屏以及RGB屏接口)LVDS接口常见于液晶电视中。eDP,LVDS,MIPI,HDMI
  18. 信息发布服务器出问题,电力网故障信息发布系统
  19. Matlab图像处理实例讲解(杨丹、赵海滨
  20. 如何建设与推广地方旅游网站

热门文章

  1. AU2019直装版/Audition CC2019安装包
  2. 精易编程助手 v1.09官方版
  3. qq一笔画c语言,qq红包一笔画图形大全答案合集下载
  4. web常见攻击及防范措施
  5. Windows应用程序如何调用驱动:打印机举例
  6. 【数字电路抢救】1 逻辑代数基础(3)同或 异或
  7. 骚年都2020年了你还在用EventBus吗?jetpack之liveData
  8. TCP/IP 网络模型
  9. 为什么numpy.corrcoef()返回nan
  10. xcConfirm弹出框