在java中确定双击

我想知道如何在鼠标在组件中双击时执行动作。

public void mouseClicked(MouseEvent event) { if (event.getClickCount() == 2) { System.out.println("double clicked"); } } 

假设你的意思是在Swing中,为你的组件分配一个MouseListener:

 addMouseListener(new MouseAdapter(){ @Override public void mouseClicked(MouseEvent e){ if(e.getClickCount()==2){ // your code here } } }); 

参考:

  • Java教程: 如何编写鼠标监听器

如果您希望允许用户在短时间内执行多次双击,则e.getClickCount()==2是不够的。 您受桌面configuration的限制。 您可以通过查看Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");的结果来获取它Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");

绕过这个问题的一个好方法是不使用getClickCount()检查,而是使用Timer ,在这里你可以select点击之间的最大间隔,并自己处理数量(非常简单)。

相关的代码:

 boolean isAlreadyOneClick; @Override public void mouseClicked(MouseEvent mouseEvent) { if (isAlreadyOneClick) { System.out.println("double click"); isAlreadyOneClick = false; } else { isAlreadyOneClick = true; Timer t = new Timer("doubleclickTimer", false); t.schedule(new TimerTask() { @Override public void run() { isAlreadyOneClick = false; } }, 500); } } 

testing与Win XP操作系统和完美。