最近在写日历课设,需要多个按钮区别双击与单击,以响应不同的事件,发现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;
import javafx.scene.control.Button;
import j

在JavaFX中,为Button实现双击功能存在挑战,因为默认的事件处理不直接支持。通过延迟单击事件的执行,并在特定时间内监听第二次点击,可以自定义实现双击事件。在多按钮场景下需要注意防止快速切换点击导致的误触发。本文提供了一种解决方案,详细介绍了如何结合延时和二次点击判断来区分单击和双击。
最低0.47元/天 解锁文章
440





