我想在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.