使用GWT跟踪页面上的鼠标移动

时间:2009-11-12 23:27:37

标签: gwt

在GWT应用程序中,我想在整个浏览器页面上跟踪并显示X,Y鼠标坐标和拦截点击。该页面包含许多GWT小部件,如面板,按钮等......任何建议都将不胜感激。

感谢。 丹尼尔

2 个答案:

答案 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)

看看: http://google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/user/client/Event.html#addNativePreviewHandler(com.google.gwt.user.client.Event.NativePreviewHandler)

确保安装NativePreviewHandler并确保在RootPanel或覆盖浏览器窗口的其他窗口小部件上注册了MouseMouseHandler。