最近在写日历课设,需要多个按钮区别双击与单击,以响应不同的事件,发现Button没有现成的双击方法可使用,虽然有e.getClickCount(),但显然不满足我们的需求。后在网上看了以下博客点击打开链接,经测试,当界面至少有两个按钮注册了同一个MyMouseListener对象,则当你手速足够快,在ButtonA单击一下后,马上单击一下ButtonB,就会造成ButtonB双击的错误后果。
结合此博客的实现思路,“考虑当第一次单击鼠标的时候让鼠标单击事件延时delay秒执行,而在这段时间里等待第二次单击,如果有第二次单击,那么我们执行双击事件任务,取消单击任务;如果在这段时间没有等到再次单击,那么执行单击任务. ”,自己实现了JavaFx的Button单击 双击,具体代码如下。
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JButton;
import javafx.application.*;
import javafx.scene.Scene;
impo