GWT:与addMouseOutHandler和addDomHandler的区别

GWT:与addMouseOutHandler和addDomHandler的区别,gwt,mouseevent,handler,Gwt,Mouseevent,Handler,我想实现onMouseOut方法来隐藏弹出窗口 这两种方法的区别是什么 1。addMouseOutHandler actionsPopup.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { actionsPopup.hide(); } }); }

我想实现
onMouseOut
方法来隐藏弹出窗口

这两种方法的区别是什么

1。addMouseOutHandler

actionsPopup.addMouseOutHandler(new MouseOutHandler() {         
        @Override
        public void onMouseOut(MouseOutEvent event) {
            actionsPopup.hide();
        }
    });
    });
2。addDOMHandler

 actionsPopup.addDomHandler(new MouseOutHandler() {         
        @Override
        public void onMouseOut(MouseOutEvent event) {
            actionsPopup.hide();
        }
    });
    }, MouseOutEvent.getType());

没有真正的区别。如果查看基本小部件(如FocusPanel)的GWT代码,addMouseOutHandler的实现只调用addDomHandler:

public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
    return addDomHandler(handler, MouseOutEvent.getType());
}

但是通过使用接口,您的代码将具有更大的灵活性。例如,您可以使用@UiHandler注释。或者,您也可以查看类似“HasMouseOutHandlers”实例的小部件,以便对一些治疗进行分组。顺便说一下,在对象的签名中,您清楚地向其他开发人员表明,您的对象可以接收这种类型的事件。

是的,在运行时也是这样。尽管使用带有addMouseOutHandler的类型化版本是更好的设计。