これはとても基本的なようですが、何らかの理由で私はそれを機能させることができません。
私は次のコードを持っています:
Component[] AddEditDelete = ToolbarPool.getDefault().findToolbar("AddEditDelete").getComponents();
for (Component component : AddEditDelete) {
component.setEnabled(false);
}
Component[] Navigation = ToolbarPool.getDefault().findToolbar("Navigation").getComponents();
for (Component component : Navigation) {
component.setEnabled(false);
}
Component[] ListFind = ToolbarPool.getDefault().findToolbar("ListFind").getComponents();
for (Component component : ListFind) {
component.setEnabled(false);
}
私がやりたいのは、単一のComponent [] c配列を作成し、その配列にツールバーからすべてのコンポーネントを追加することです。
私の直感的なアプローチ
Component[] c;
c.add(stuff);
うまくいかなかったようです。だから私はあなたが他の方法でそれをしていると思います。
edit1: ArrayList> Componentを使用した最近の試みが機能しませんでした=(
ArrayList c = new ArrayList();
c.add(ToolbarPool.getDefault().findToolbar("AddEditDelete").getComponents());
c.add (ToolbarPool.getDefault().findToolbar("Navigation").getComponents());
Component[] cc = (Component[]) c.toArray();
for (Component component : cc) {
component.setEnabled(false);
}
edit2:愚かな私、型なしでArrayListを使おうとしています。これは機能しますが、それでもかなりの数行のコードになります。
ArrayList<Component> c = new ArrayList<Component>();
for (int i = 0; i < ToolbarPool.getDefault().findToolbar("AddEditDelete").getComponents().length; i++) {
c.add(ToolbarPool.getDefault().findToolbar("AddEditDelete").getComponent(i));
}
for (int i = 0; i < ToolbarPool.getDefault().findToolbar("Navigation").getComponents().length; i++) {
c.add(ToolbarPool.getDefault().findToolbar("Navigation").getComponent(i));
}
for (Component component : c) {
component.setEnabled(false);
}
コードの行数を短縮する方法はありますか?