1

私は自分のプロジェクトでZK Frameworkを使用しています。div または Window コンポーネント内に他のコンポーネントがたくさんあります 。特定の条件でDiv または コンポーネントを無効にする方法を教えてください。確認したところ 、これらのコンポーネントの属性Window はありません 。disable

その他の方法ではdisableDiv または または Window内の各コンポーネントを無効にする必要があり ます DivWindowLayout

4

3 に答える 3

2

ここでは、インターフェイスを実装するすべてのコンポーネントを無効にする非常に簡単な方法を示し
Disableます。

@Wire("disable")
private List<Disable> allToDisable;

private disableAll(List<Disable> list){
   for(Disable d : list){
       d.setDisabled(true);
   }
}

@Wireニーズに合わせてのパスを編集したり 、 zk セレクター パスを
使用する のメソッドSelectorsまたはその他のメソッドを使用したりできます。
で終わるだけで 、インターフェイスを実装
"disable"するすべてのコンポーネントを選択する必要があります。

于 2013-05-16T10:33:46.067 に答える
2

簡単な方法はないと思います。このようなことを試してみます(Googleでこれを見つけましたが、最後のプロジェクトで同様のことをしたことを覚えています)

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 );
     }
  }

}

于 2013-05-16T09:22:32.663 に答える