1

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

这两种方法有什么区别..?

1.添加鼠标输出处理程序

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

2.添加DOMHandler

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

1 回答 1

3

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

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

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

于 2013-08-16T12:36:45.727 回答