java - GWT 事件处理程序的触发顺序

标签 java gwt

GWT EventHandlers 的触发有已知的顺序吗?

即。如果我有一个扩展 ListBox 的类并从构造函数中添加一个 EventHandler,我能否确定这个 Handler 将在稍后由周围类添加的另一个 Handler 之前被调用?

同样,如果子类采用构造函数:

Subclass() {
    super();
    addChangeHandler(new ChangeHandler() {
        // ...
    });
}

但是父类(super class)有相同的构造函数,它添加了一个 ChangeHandler:

Superclass(){
    addChangeHandler(new ChangeHandler() {
        // ...
    });
}

我们能否假设在调用父类(super class)的构造函数并在子类之前添加处理程序时触发它们的顺序?

非常感谢,这一直困扰着我。

克里斯。

最佳答案

触发确实按照添加处理程序的顺序发生。据我所知,这在 javadoc 中没有记录,但我深入研究了 GWT 代码和 com.google.gwt.event.shared.HandlerManager.HandlerRegistry.fireEvent(GwtEvent, boolean) 方法最终在事件发生时被调用被解雇。

在某些情况下,所有事件都以相反的顺序触发,但这似乎与主要小部件无关。如果您在 com.google.gwt.event.shared.HandlerManager.HandlerManager(Object, boolean) 上执行调用层次结构,您将看到谁在启用反向触发的情况下调用 HandlerManager。

关于java - GWT 事件处理程序的触发顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1086414/

相关文章:

java - 查找数组实现包中的第 k 个最大元素

google-app-engine - GWT SSLContext.setDefault(SSLContext) 码头异常

java - 如何将 Maven 管理的依赖项复制到 war\web-inf\lib 中,以便我可以在 Eclipse 中以 Debug模式运行我的 GWT 2.0 应用程序?

java - 应该覆盖哪个异常方法?

java - 使用 keycloak 在 servlet 应用程序中获取用户角色

java - 在数据网格中以自定义字符分割行值

gwt - 将 Google Analytics 集成到 GWT 应用程序中

java - 如何本地化 GWT 客户端代码中的枚举值?

java - 为什么我的 HTTP 消息在正文大小达到 Content-Length header 中规定的大小之前就结束了?

java - 实现 Mockito 的 Answer 接口(interface)来测试方法的所有分支