将MouseOverHandler添加到元素?

JP *_*son 9 java gwt

我想在GWT 1.6中监听鼠标悬停事件.由于GWT 1.6引入了处理程序并且不赞成使用者,因此我不确定如何通过存在少量信息来实现这一点.

注意:我有一个Element对象.这就是我需要添加鼠标处理程序.我为自己的不清晰而道歉.

谢谢!

Cov*_*ene 19

我希望在我需要自己解决这个问题之前,我们会看到答案.他发布的示例代码中存在一些错误,但Mark Renouf在此主题中的帖子具有我们所需的大部分内容.

假设您想要在自定义小部件上侦听鼠标悬停和鼠标移除事件.在您的小部件中,添加两个方法:

public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
  return addDomHandler(handler, MouseOverEvent.getType());
}

public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
  return addDomHandler(handler, MouseOutEvent.getType());
}
Run Code Online (Sandbox Code Playgroud)

然后创建一个处理程序类:

public class MyMouseEventHandler implements MouseOverHandler, MouseOutHandler {
  public void onMouseOver(final MouseOverEvent moe) {
    Widget widget = (Widget) moe.getSource();
    widget.addStyleName("my-mouse-over");
  }

  public void onMouseOut(final MouseOutEvent moe) {
    Widget widget = (Widget) moe.getSource();
    widget.removeStyleName("my-mouse-over");
  }
}
Run Code Online (Sandbox Code Playgroud)

最后,将处理程序添加到窗口小部件:

myWidget.addMouseOverHandler(new MyMouseEventHandler());
myWidget.addMouseOutHandler(new MyMouseEventHandler());
Run Code Online (Sandbox Code Playgroud)

如果您只是通过事件监听鼠标,则可以跳过鼠标处理.如果您没有制作自定义小部件,那么小部件我已经有了添加处理程序的方法.

最后,根据线程的警告,请记住addDomHandler鼠标事件,而不是addHandler.