Java 禁用所有GWT子窗口小部件的工作方式很奇怪
我需要禁用一些自定义面板的所有childs小部件。我有这样的方法:Java 禁用所有GWT子窗口小部件的工作方式很奇怪,java,google-chrome,firefox,gwt,Java,Google Chrome,Firefox,Gwt,我需要禁用一些自定义面板的所有childs小部件。我有这样的方法: public static void disableChilds(Widget widget) { if(widget instanceof HasWidgets) { Iterator<Widget> iter = ((HasWidgets) widget).iterator(); while(iter.hasNext()) {
public static void disableChilds(Widget widget) {
if(widget instanceof HasWidgets) {
Iterator<Widget> iter = ((HasWidgets) widget).iterator();
while(iter.hasNext()) {
Widget element = iter.next();
//Window.alert(element.getClass().toString());
if(element instanceof HasEnabled) {
((HasEnabled) element).setEnabled(false);
}
disableChilds(element);
}
}
}
没有注释。它根本不想在Chrome(35.0.1916.114)上工作
如果有任何帮助,我将不胜感激。只需禁用根控件即可。我认为没有必要禁用所有组件。根小部件是面板,因此我无法禁用它,我只能隐藏它,但这不是我需要的。我不认为是
Window.alert
导致了问题。可能是代码中的其他地方。我同意@Braj,如果它在一个浏览器中工作,Window.alert应该不是问题。你是否检查过你的chrome控制台中是否出现异常?我有大约5个小部件要禁用so Window.alert以增加页面呈现时间。但我不明白为什么它只能在firefox上运行。另一件奇怪的事情是chrome上的Window.alert和firefox上的提醒不同的小部件(在firefox上它显示所有的子小部件,在chrome上只显示很少的第一个小部件)。控制台中没有异常
Window.alert(element.getClass().toString());