我在我的项目中使用ZK 框架我在 div 或 Window 组件中有很多其他组件,谁能告诉我如何在某些情况下禁用一个 Div
或 Window
组件。当我检查这些组件没有任何 disable
属性时。
disable
我们可以采取的 任何其他方式,否则我必须禁用 Div
or 或 or 中的每个组件Window
Div
Window
Layout
我在我的项目中使用ZK 框架我在 div 或 Window 组件中有很多其他组件,谁能告诉我如何在某些情况下禁用一个 Div
或 Window
组件。当我检查这些组件没有任何 disable
属性时。
disable
我们可以采取的 任何其他方式,否则我必须禁用 Div
or 或 or 中的每个组件Window
Div
Window
Layout
我认为没有简单的方法,我会尝试这样的事情(在谷歌上找到了这个,但我记得在我的上一个项目中做了类似的事情)
public static void disableComponents( AbstractComponent pComponent ) {
for( Object o : pComponent.getChildren() ) {
AbstractComponent ac = ( AbstractComponent ) o;
try {
Method m = ac.getClass().getMethod( "setDisabled", Boolean.TYPE );
m.invoke( ac, true );
} catch( Exception e ) {
}
List children = ac.getChildren();
if( children != null ) {
disableComponents( ac );
}
}
}
我们可以改进 Gatekeeper(2013 年 5 月 16 日 9:22)的解决方案,添加条件“如果”。if (ac instanceof Disable) { --- 代码 -- }
public static void disableComponents( AbstractComponent pComponent ) {
for( Object o : pComponent.getChildren() ) {
AbstractComponent ac = ( AbstractComponent ) o;
try {
if (ac instanceof Disable) {
Method m = ac.getClass().getMethod("setDisabled", Boolean.TYPE);
m.invoke(ac, true);
}
} catch( Exception e ) {
e.printStackTrace();
}
List children = ac.getChildren();
if( children != null ) {
disableComponents( ac );
}
}
}