有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java GWT:禁用某些小部件上的所有事件

我有一些小部件,我认为它是禁用的。禁用的小部件不应处理任何事件。但事实上,我已经在这个小部件中添加了几个UIHandler。例如OnClick、OnKeyPressed、OnKeyDown等。我不想逐个注销这些处理程序,也不想向它们添加if子句。另一个选项是从该小部件中生成子类并覆盖OnBrowserEvent,但这意味着创建另一个类

是否可以在一个代码段中禁用与该小部件相关的所有事件

我在谷歌上搜索了以下解决方案:

            Event.addNativePreviewHandler(new Event.NativePreviewHandler()
            {
                public void onPreviewNativeEvent(Event.NativePreviewEvent pEvent)
                {
                    final Element target = pEvent.getNativeEvent().getEventTarget().cast();

                    // block all events targetted at the children of the composite.
                    if (DOM.isOrHasChild(myWidget.getElement(), target))
                    {
                        pEvent.cancel();
                    }
                }
            });

这就是我想要的。但不幸的是,它不起作用:)OnFocusEvent、KeyDownEvent仍然会到达,并调用相应的处理程序

有什么捷径可以做到这一点吗?GWT 2.5


共 (1) 个答案

  1. # 1 楼答案

    我最近也有类似的问题。要解决这个问题,我们应该补充:

    pEvent.getNativeEvent().preventDefault()