Java GWT对特定元素使用DoubleClickHandler和ClickHandler
我有一个包含Java GWT对特定元素使用DoubleClickHandler和ClickHandler,java,gwt,Java,Gwt,我有一个包含onClick和onDoubleClick处理程序的元素。我需要为每个调用不同的方法,但我不能这样做 有什么办法吗 代码: docksWidget.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent arg0) { // TODO Auto-generated method stub W
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");
});