我有一个带有 onClick
和 onDoubleClick
处理程序的元素。我需要为每个方法调用不同的方法,但我无法做到这一点。
有什么办法吗?
代码:
docksWidget.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
// TODO Auto-generated method stub
Window.alert("Single Click");
}
});
docksWidget.addDoubleClickHandler(new DoubleClickHandler() {
@Override
public void onDoubleClick(DoubleClickEvent arg0) {
// TODO Auto-generated method stub
Window.alert("Double Click");
}
});
最佳答案
在您的代码中,ClickHandler
和 DoubleClickHandler
都将在双击时触发。您需要区分“单击”和“双击的第一次单击”。下面是您可以考虑的代码,它将计时器添加到 ClickHandler
来检测它是“单击”还是“双击的第一次单击”。
final int[] clicks = {0}; //we need to make this final because it's used in lambda
testAnchor.addClickHandler(event -> {
clicks[0]++;
Scheduler.get().scheduleFixedPeriod(() ->
{
if (clicks[0] == 1)
{
//put your single click action here
Window.alert("single click");
}
clicks[0] = 0;
return false;
}, 500); //The default double click timeframe in Microsoft Windows is 500ms
});
testAnchor.addDoubleClickHandler(event -> {
//put your double click action here
Window.alert("double click");
});
关于java - GWT 对特定元素使用 DoubleClickHandler 和 ClickHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45740037/