Events 什么';GWT中逻辑事件和本机事件的区别是什么?

Events 什么';GWT中逻辑事件和本机事件的区别是什么?,events,browser,gwt,event-handling,Events,Browser,Gwt,Event Handling,我注意到有两种方法可以将事件处理程序连接到GWT小部件:addHandler和addDomHandler。addDomHandler的JavaDoc说:“将本机事件处理程序添加到小部件并接收相应的本机事件。如果您不想接收本机事件,请使用通用的addHandler方法。” 如果有人能告诉我本机事件和逻辑事件之间的区别,我将不胜感激。本机事件是由浏览器直接触发的-如单击、鼠标移动、按键等事件。要在小部件上接收这些事件,您必须专门接收事件 一般事件更一般。例如,我创建了一个SaveEvent和一个De

我注意到有两种方法可以将事件处理程序连接到GWT小部件:addHandler和addDomHandler。addDomHandler的JavaDoc说:“将本机事件处理程序添加到小部件并接收相应的本机事件。如果您不想接收本机事件,请使用通用的addHandler方法。”


如果有人能告诉我本机事件和逻辑事件之间的区别,我将不胜感激。

本机事件是由浏览器直接触发的-如单击、鼠标移动、按键等事件。要在小部件上接收这些事件,您必须专门接收事件


一般事件更一般。例如,我创建了一个
SaveEvent
和一个
DeleteEvent
供我自己使用,当满足某些UI条件时会被触发。它们离浏览器较远,永远不会被浏览器直接触发。我认为,如果可能的话,您应该坚持使用更通用的事件。另一方面,如果您正在创建一个无法使用其他小部件的自定义小部件(例如,如果您想创建一个用户可以单击和拖动的滑块),则需要DOM事件。

您所说的“您必须专门接收事件”是什么意思?如何接收它们?在UIObject()中调用
sinkEvents
。执行此操作后,您的小部件的
onBrowserEvent
将触发相关事件。例如,如果您接收鼠标事件,则当小部件发生本机鼠标事件时,
onBrowserEvent
将被激发。