学习啦>学习电脑>电脑硬件知识>键盘鼠标>

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;

  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鼠标双击事件怎么实现相关文章:

1.java鼠标双击事件

2.怎么用JS实现鼠标单击与双击事件共存

3.鼠标单击变成双击怎么解决

4.鼠标停在图片上变成小手怎么实现

5.在java中实现左右键菜单

6.java如何设置鼠标左右键

7.鼠标单击变双击的修复方法

    2006906