这似乎很基本,但由于某种原因我无法让它工作。
我有以下代码:
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);
}
有没有办法缩短代码行数?