events - GWT 事件预览与事件处理程序

标签 events gwt handler preview

我的问题是,GWT 中的事件预览和事件处理程序有什么不同。

有一个用于事件预览的回调函数 boolean onEventPreview(Event event) 和一个回调函数 void onBrowserEvent(Event event) 。它们非常相似,那么它们之间有什么不同呢?特别是当事件处理程序完美运行时,我什么时候应该使用事件预览?

谢谢

最佳答案

DOM.addEventPreview(EventPreview Preview) 允许您将事件预览放置在事件堆栈顶部,该预览会在触发任何 onBrowserEvent(Event event) 之前调用。通过这种方式,您可以在事件触发之前放置一些逻辑。您甚至可以通过返回 false 来阻止事件触发。例如下面的示例阻止浏览器对 mousemove 和 mousedown 事件使用react。(单击并拖动图像,浏览器不会拖动图像的轮廓)

    DOM.addEventPreview(new EventPreview() {
        @Override
        public boolean onEventPreview(Event event) {
            switch (DOM.eventGetType(event)){
                case Event.ONMOUSEDOWN:
                case Event.ONMOUSEMOVE:
                    event.preventDefault();
            } 
            return true;
        }
    });

提醒一下,这种添加 eventPreviews 的方式已被弃用。正确的方法是使用 Event.addNativePreviewHandler(NativePreviewHandler handler)

关于events - GWT 事件预览与事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7076004/

相关文章:

swing - Java Swing 属性 (addPropertyChangeListener)

javascript jquery 创建和监听事件

java - GWT 更改 menuBar 位置

java - Web 应用程序到桌面应用程序的通信

java - 在 Android 中使用回调还是使用 Handler?

java - 尝试为 `coroutine`编写 `handler`模拟,但不起作用

c# - 一个事件监听器是否可以被限制为只有一个订阅者?

java - GWT/GWT-Ext 中密码字符串的 md5 散列?

events - 在PowerShell中,如何为COM对象实现事件处理程序?

c# - 不注销事件处理程序不好吗?