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;

java 鼠标双击事件 java鼠标双击事件怎么实现

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());

//处理鼠标右键单击

  

爱华网本文地址 » http://www.aihuau.com/a/208661/838287006.html

更多阅读

最新解决鼠标单击变双击修复方法 为什么鼠标单击变双击

最新解决鼠标单击变双击修复方法——简介 最近上网真的比较烦,鼠标左键单击轻轻一点,本身是单击,却变成了双击,甚至多击,复制个东西怎么也完不成,看个网页,一不小心,鼠标一点就关了,发个博客或者经验,还在编辑那,轻轻一点关了,真是很不爽,在网上

鼠标左键单击变双击怎么办? 鼠标左键单击变多选

鼠标左键单击变双击怎么办?——简介鼠标作为用户上网必用配件之一,使用久了也难免会出现各种鼠标罢工现象,比如鼠标左键单击会变双击。可能很多朋友会说鼠标坏了换个不就得了,反正又不贵,但笔者想说的是对于鼠标左键单击变双击,很多时候仅

鼠标单击变双击怎么办 鼠标单击偶尔变双击

最近有网友问咨询鼠标单击变双击的问题,说鼠标点一下变两下是什么原因,是硬件故障问题吗?该怎么解决呢?用鼠标单击文件夹时,不是显示被选中,而是直接打开了,好像双击操作一样。对程序的操作也是一样,只是点击了一下快捷方式,程序就打开了。

Windows不能用鼠标双击运行jar文件怎么办? 精 jar双击打不开

Windows不能用鼠标双击运行jar文件怎么办? 精——简介Java应用程序jar文件可以由 JVM(Java虚拟机)直接执行,只要操作系统安装了JVM便可以运行作为Java应用程序的jar文件,其跨平台特性使得很多工具软件都用jar方式来部署分发,比如用于HP We

自己动手,修复鼠标单击变双击的解决 鼠标单击偶尔变双击

之前在网上看到很多朋友亲自实践修复鼠标的壮举,哈哈,主要晒左键单击变双击的问题。今天自己通过网友的众多博文,自己动手修复了鼠标,现借用大家的图对一些细节描述一下。1、修要的工具:螺丝刀(拆解鼠标用)、大头针(撬开点触器用)、砂纸(磨触

声明:《java 鼠标双击事件 java鼠标双击事件怎么实现》为网友初恋未满分享!如侵犯到您的合法权益请联系我们删除