java - GWT 奇怪的 onblur 处理程序行为

标签 java gwt

您好,我正在使用流程面板的焦点和模糊处理程序来添加轮廓。但是,鉴于代码,我遇到了一些奇怪的行为:

            panel.addDomHandler(new FocusHandler() {
                @Override
                public void onFocus(FocusEvent focusEvent) {
                    panel.addStyleName("FOOSTYLE");
                }
            }, FocusEvent.getType());


            panel.addDomHandler(new BlurHandler() {
                FlowPanel _panel = focusPanel;
                boolean init = false;
                @Override
                public void onBlur(BlurEvent blurEvent) {
                    console.log("Do Blur");
                    panel.removeStyleName("FOOSTYLE");
                }
            }, BlurEvent.getType());

模糊处理程序中的removeStyleName()似乎是无缘无故被调用的,还要注意日志,当随机模糊处理程序被调用时,它甚至不会被执行,如果有的话。

有什么建议吗?

最佳答案

要处理焦点和模糊事件,您应该使用 FocusPanel 。它实现了HasFocusHandlersHasBlurHandlers因此您可以调用 addFocusHandler()addBlurHandler() 而不是低级 addDomHandler() 方法。

如果您需要使用FlowPanel来布局小部件,您可以将其添加到FocusPanel

关于java - GWT 奇怪的 onblur 处理程序行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56626462/

相关文章:

java - android - 如何在服务中添加位置权限

java - 将 "rgb (x, x, x)"字符串解析为颜色对象

java - 如何使 Bean Validation API 1.1 与 GWT 2.7 一起使用?

java - Maven "could not parse error message"(Java 7 + Maven 2)

java - 如何模拟对从 protected 资源继承的接口(interface)的调用

java - 尝试按特定顺序将一维数组放入二维数组

GWT 同步调用

gwt - 在较新的浏览器上调试 GWT

java - 当我尝试将 TextView 放在 ImageView 前面时,它消失了

java - FtpClient 检索文件流 [挂起]