2023年12月18日发(作者:)

java鼠标双击事件

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

java鼠标双击事件实例介绍

public class MyMouseListener

extends dapter ...{

public void mouseClicked(MouseEvent e) ...{

n("clicked");

int clickTimes = ckCount();

if (clickTimes == 2) ...{

n("Doublc Clicked!");

}

}

} 但是这样并没有达到我们的要求,因为在每次触发双击事件的同时会触发单击事件.所以我们试图改进以上方案,不使用系统提供的ckCount()方法.可以考虑当第一次单击鼠标的时候让鼠标单击事件延时0.2秒执行,而在这段时间里等待第二次单击,如果有第二次单击,那么我们执行双击事件任务,取消单击任务;如果在这段时间没有等到再次单击,那么执行单击任务.

下面是用定时器延时单击事件实现鼠标双击事件,单击和双击事件互不影响!

public class MyMouseListener

extends dapter ...{

private static boolean flag=false;//用来判断是否已经执行双击事件

private static int clickNum=0;//用来判断是否该执行双击事件

public void mouseClicked(MouseEvent e) ...{

final MouseEvent me=e;//事件源

=false;//每次点击鼠标初始化双击事件执行标志为false

if (um == 1) ...{//当clickNum==1时执行双击事件

oubleClicked(me);//执行双击事件

um=0;//初始化双击事件执行标志为0

=true;//双击事件已执行,事件标志为true

return;

}

//定义定时器

timer=new ();

//定时器开始执行,延时0.2秒后确定是否执行单击事件

le(new ask() ...{

private int n=0;//记录定时器执行次数

public void run() ...{

if()...{//如果双击事件已经执行,那么直接取消单击执行

n=0;

um=0;

();

return;

}

if (n == 1) ...{//定时器等待0.2秒后,双击事件仍未发生,执行单击事件

mouseSingleClicked(me);//执行单击事件

= true;

um=0;

n=0;

();

return;

}

clickNum++;

n++;

}

},new (),500);

}

/** *//**

* 鼠标单击事件

* @param e 事件源参数

*/

public void mouseSingleClicked(MouseEvent e)...{

n("Single Clicked!");

}

/** *//**

* 鼠标双击事件

* @param e 事件源参数

*/

public void mouseDoubleClicked(MouseEvent e)...{

n("Doublc Clicked!");

}

}

//

import .*;

import .*;

import .*;public class Test extends JFrame{

public Test(){

super("test");

init();

e(800,600);

ible(true);

}

private void init(){

JButton b=new JButton("button");

nds(50,50,100,30);

tentPane().setLayout(null);

tentPane().add(b);

seListener(new MyMouseListener());

}

public static void main(String args[]){

new Test();

}

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

ava鼠标双击事件