Events GWT的BrowserEvent和NativeEvent到底是什么?
什么是浏览器事件?例如,如果我有一个自定义小部件,其中包含一个覆盖onBrowserEvent的按钮。而onBrowserEvent方法仅在单击按钮时调用。我认为这个事件是为所有事件调用的,比如onMouseOver、onMouseOut、KeyPressed等 另外,当您添加DomHandler以使小部件侦听默认情况下不受支持的事件时。在文档中,它说“向小部件添加一个本机事件处理程序并接收相应的本机事件”,在这种上下文中,本机事件是什么意思 谢谢,GWT有沉没事件的概念。所有沉没事件(但只有那些)都会传递给a的Events GWT的BrowserEvent和NativeEvent到底是什么?,events,gwt,Events,Gwt,什么是浏览器事件?例如,如果我有一个自定义小部件,其中包含一个覆盖onBrowserEvent的按钮。而onBrowserEvent方法仅在单击按钮时调用。我认为这个事件是为所有事件调用的,比如onMouseOver、onMouseOut、KeyPressed等 另外,当您添加DomHandler以使小部件侦听默认情况下不受支持的事件时。在文档中,它说“向小部件添加一个本机事件处理程序并接收相应的本机事件”,在这种上下文中,本机事件是什么意思 谢谢,GWT有沉没事件的概念。所有沉没事件(但只有那
onBrowserEvent
在最低级别,您可以将事件侦听器
附加到元素
,并使用(或最近)的事件接收事件。为了避免内存泄漏(尤其是在旧IEs中,如果不仅仅是这样),您必须确保在页面卸载之前将元素的事件侦听器设置为null
Widget
是一个EventListener
并为您处理其中的一些事情:它在其onAttach
和onDetach
中自动调用DOM.setEventListener
,并跟踪沉没事件:它的sinkEvents
是可添加的,使其更易于使用,因此有一个对应的unsinkEvents
后来,在GWT1.6中,添加了事件处理程序,addDomHandler
(以及最近的addBitlessDomHandler
)自动调用带有适当值的sinkEvents
(取自doEvent.Type
作为参数传递);为了完成所有这些工作,小部件中的onBrowserEvent
的默认行为是将事件分派给已注册的处理程序
这些无位变体的原因是事件最初在位字段中被称为int
常量,但浏览器中的事件越来越多,因此GWT开始耗尽位。无位变体仅适用于不泄漏的浏览器,因为与基于位的事件相反,Widget不会通过这种方式跟踪已注册的事件,从而从其ondeach
中注销它们
所有这些从GWT1.6开始的新DomeEvent
s(及其处理程序)都是围绕NativeEvent
的包装。有两种GwtEvent
s:原生的(DomEvent
s),由浏览器调度;逻辑的由GWT本身调度,并且不映射到DOM级别的事件addDomHandler
只关心DomeEvent
s,即本机事件
收尾:当您退出刚修改的文本字段时,浏览器将发送一个change
事件。如果TextBox
小部件已丢弃该事件,则其onBrowserEvent
将被调用,其中包含表示该事件的事件
(它只是NativeEvent
的遗留子类)。onBrowserEvent
的默认实现然后创建一个ChangeEvent
并将其分派给注册的ChangeHandler
s.什么是沉没事件?当你说“widget已经击沉了那个事件”时,那到底是什么意思?英语动词:sink/sink/sink。在GWT的上下文中,如果调用了sinkEvents
,并将其代码作为参数,则事件将被丢弃。@ThomasBroyer现在我得到了BrowserEvents的澄清…非常感谢。