资源描述:
《java鼠标双击事件 java鼠标双击监听》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、本文格式为Word版,下载可任意编辑java鼠标双击事件java鼠标双击监听爱学习的小伙伴们,可能都学习过java,但是你知道java鼠标双击大事是怎么实现的吗?不知道的话跟着我一起来学习了解java鼠标双击大事吧。java鼠标双击大事实例介绍publicclassMyMouseListenerextendsjava.awt.event.MouseAdapter...{publicvoidmouseClicked(MouseEvente)...{System.out.println(clicked);intclickTimes=e.getClick
2、Count();if(clickTimes==2)...{System.out.println(DoublcClicked!);}}}但是这样并没有达到我们的要求,由于在每次触发双击大事的同时会触发单击大事.所以我们试图改进以上方案,不使用系统供应的e.getClickCount()方法.可以考虑当第一次单击鼠标的时候让鼠标单击大事延时0.2秒执行,而在这段时间里等待其次次单击,假如有其次次单击,那么我们执行双击大事任务,取消单击任务;假如在这段时间没有等到再次单击,那么执行单击任务.下面是用定时器延时单击大事实现鼠标双击大事,单击和双击大事互不影
3、响!publicclassMyMouseListenerextendsjava.awt.event.MouseAdapter...{privatestaticbooleanflag=false;//用来推断是否已经执行双击大事privatestaticint第4页共4页本文格式为Word版,下载可任意编辑clickNum=0;//用来推断是否该执行双击大事publicvoidmouseClicked(MouseEvente)...{finalMouseEventme=e;//大事源this.flag=false;//每次点击鼠标初始化双击大事执行标
4、志为falseif(this.clickNum==1)...{//当clickNum==1时执行双击大事this.mouseDoubleClicked(me);//执行双击大事this.clickNum=0;//初始化双击大事执行标志为0this.flag=true;//双击大事已执行,大事标志为truereturn;}//定义定时器java.util.Timertimer=newjava.util.Timer();//定时器开头执行,延时0.2秒后确定是否执行单击大事timer.schedule(newjava.util.TimerTask().
5、..{privateintn=0;//记录定时器执行次数publicvoidrun()...{if(MyMouseListener.flag)...{//假如双击大事已经执行,那么直接取消单击执行n=0;MyMouseListener.clickNum=0;this.cancel();return;}if(n==1)...{//定时器等待0.2秒后,双击大事仍未发生,执行单击大事mouseSingleClicked(me);//执行单击大事第4页共4页本文格式为Word版,下载可任意编辑MyMouseListener.flag=true;MyMou
6、seListener.clickNum=0;n=0;this.cancel();return;}clickNum++;n++;}},newjava.util.Date(),500);}///鼠标单击大事@parame大事源参数/publicvoidmouseSingleClicked(MouseEvente)...{System.out.println(SingleClicked!);}///鼠标双击大事@parame大事源参数/publicvoidmouseDoubleClicked(MouseEvente)...{System.out.prin
7、tln(DoublcClicked!);}}//Test.javaimportjavax.swing.;第4页共4页本文格式为Word版,下载可任意编辑importjava.awt.;importjava.awt.event.;publicclassTestextendsJFrame{publicTest(){super(test);init();this.setSize(800,600);this.setVisible(true);}privatevoidinit(){JButtonb=newJButton(button);b.setBounds
8、(50,50,100,30);this.getContentPane().setLayout(null);this.get