java调试 java鼠标双击事件

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

java鼠标双击事件实例介绍

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

}

java调试 java鼠标双击事件

/** *//**

* 鼠标单击事件

* @param e 事件源参数

*/

public void mouseSingleClicked(MouseEvent e)...{

System.out.println("Single Clicked!");

}

/** *//**

* 鼠标双击事件

* @param e 事件源参数

*/

public void mouseDoubleClicked(MouseEvent e)...{

System.out.println("Doublc Clicked!");

}

}

//Test.java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;public class Test extends JFrame{

public Test(){

super("test");

init();

this.setSize(800,600);

this.setVisible(true);

}

private void init(){

JButton b=new JButton("button");

b.setBounds(50,50,100,30);

this.getContentPane().setLayout(null);

this.getContentPane().add(b);

b.addMouseListener(new MyMouseListener());

}

public static void main(String args[]){

new Test();

}

}你将以上2个文件编译一下,再运行 Test.java 文件即可

  

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

更多阅读

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

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

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

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

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

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

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

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

声明:《java调试 java鼠标双击事件》为网友少年很平凡分享!如侵犯到您的合法权益请联系我们删除