这个问题在这里已经有答案了:
如何在javafx中区分单击或双击表行(2个答案)
上个月关门了。
这是我到目前为止所做的,它工作得很好,但是当我双击时,双击事件被激发,而单击事件被激发,当我只单击时,单击当然被激发。
long currentMillis = System.currentTimeMillis();
addEventFilter(MouseEvent.MOUSE_CLICKED, e -> {
long currentClickedMillis = System.currentTimeMillis();
long diffMillis = currentClickedMillis - currentMillis;
currentMillis = currentClickedMillis;
if (diffMillis > 500) {
fireEvent(new FlightListEvents(FlightListEvents.FLIGHT_BUTTON_CLICKED, this.aircraft));
} else {
fireEvent(new FlightListEvents(FlightListEvents.FLIGHT_BUTTON_DOUBLE_CLICKED, this.aircraft));
}
});
堆栈溢出的其他解决方案不起作用!他们只是计算点击次数,仍然有我现在的问题。
1条答案
按热度按时间a7qyws3x1#
我曾经遇到过同样的问题,也找不到解决办法,所以我只好自己制定解决办法。
为此,我使用了javafx的
Timeline
这将使你能够在第一次点击时开始一条时间线,并且取决于你之后是否进行第二次点击,它将认为是一次点击或双击,但决不能同时进行两次点击。以下是我的解决方案: