Java中的鼠标双击事件

18

默认情况下,MouseClicked事件从单击开始。我有一个在JTextPane中的点击事件,但我想要双击开始。这个可能吗?


“Mouseclicked事件从单击开始”没有意义:无论点击次数如何,只要检测到匹配的按下/释放,就会分派mouseClicked事件。您究竟想做什么? - kleopatra
是的,我理解,从技术上讲没问题,但问题出在哪里?只需使用@Johnny Rocket的答案... - kleopatra
5个回答

53

我认为你可以从MouseEvent(假设它被称为e)中提取点击次数。

尝试这个:

if (e.getClickCount() == 2 && !e.isConsumed()) {
     e.consume();
     //handle double click event.
}

有没有一种好的方法可以重置点击计数,使用户可以保持双击,并且每第二次点击都计为双击,而不需要暂停? - Martin
4
您可以直接使用 if(e.getClickCount() % 2 == 0) 来实现该效果。 - Michael

3

我认为这个问题不会有解决方案,因为Java可以在非PC设备上运行。

大多数便携设备不支持双击。

你可以跟踪每次鼠标点击的时刻,并触发自己的“双击”事件。但我认为这不是一个好主意。


2
哦,你认为移动设备在哪里发挥作用? - kleopatra

3
    private void jEditorPane3MouseClicked(java.awt.event.MouseEvent evt) {                                          

            if (evt.getClickCount() == 2 && !evt.isConsumed()) {
                    evt.consume();
                    System.out.println("Double Click");
            }
    }

0
你可以计算连续点击之间的时间差。将其与阈值进行比较,然后自行决定它是否为双击。

0
你可以重写 mousePressed() 或 mouseReleased() 方法,并询问 e.getClickCount() == 2,我建议使用 mousePressed() 或 mouseReleased() 方法而不是 mouseClicked() 方法,因为使用这些方法将给用户更多时间执行点击操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接