在GWT应用程序中,我想在整个浏览器页面上跟踪并显示X,Y鼠标坐标和拦截点击。该页面包含许多GWT小部件,如面板,按钮等......任何建议都将不胜感激。
感谢。 丹尼尔
答案 0 :(得分:6)
由于种种原因,我最近不得不多次使用这些。这是如何使用GWT本机预览处理程序的一个非常基本的例子。
我有一点需要注意的警告:onPreviewNativeEvent()会经常执行....如果你在这里放置任何类型的计算昂贵的逻辑,它将减慢一切,尤其是在IE和/或旧计算机上。根据您的需要,这可能不是问题,但值得一提。
Event.addNativePreviewHandler(new NativePreviewHandler() {
public void onPreviewNativeEvent(final NativePreviewEvent event) {
final int eventType = event.getTypeInt();
switch (eventType) {
case Event.ONMOUSEMOVE:
//mouse tracking logic?
break;
case Event.ONCLICK:
final int eventX = event.getNativeEvent().getClientX();
final int eventY = event.getNativeEvent().getClientY();
Window.alert("Clicked @ " + eventX + "," + eventY);
break;
default:
// not interested in other events
}
}
});
答案 1 :(得分:2)
确保安装NativePreviewHandler并确保在RootPanel或覆盖浏览器窗口的其他窗口小部件上注册了MouseMouseHandler。