【发布时间】:2021-03-10 04:24:37
【问题描述】:
这是我到目前为止所做的,它工作得很好,但是当我双击时,会触发双击事件并触发单击事件,当我单击时当然只会触发单击事件。
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));
}
});
Stack Overflow 上的其他解决方案不起作用!他们只是计算点击次数,但仍然遇到我现在遇到的同样问题。
【问题讨论】:
-
当心:为双击而不是单击做一些完全不同的事情是糟糕的用户体验!通常,双重应该增强/扩大单一。
-
@kleopatra 但双击触发单击事件是否违反直觉?
-
@Elmehdi 不,这取决于客户端应用程序来区分:) 典型的良好 UX f.i.是单选、双启动编辑。不好的是首先开始编辑,第二个删除项目..所以我第一次解决这样的问题是重新考虑用户体验(相对于技术上单独的单/双 - 这是可能的,正如你的回答正确表明的那样:)