如何迭代地将组件添加到Swing GroupLayout ParallelGroup?
有没有办法迭代组件列表并将它们添加到Swing GroupLayout中的ParallelGroup?
这似乎很难,因为没有方法可以获得ParallelGroup。
以下是生成组件列表的代码(在本例中为JCheckBoxes)。
List listCustomiseJCB = new ArrayList(); for (int w = 0; w < initialCMTableColumns.size(); w++) { String heading = (String)initialCMTableColumns.get(w).getHeaderValue(); listCustomiseJCB.add(new JCheckBox(heading)); }
列表正在工作,但我如何迭代List以将每个JCheckbox插入GroupLayout的ParallelGroup? 例如,下面的代码将无法编译。
GroupLayout gl = new GroupLayout(jpnlCustomise); jpnlCustomise.setLayout(gl); gl.setAutoCreateContainerGaps(true); gl.setAutoCreateGaps(true); GroupLayout.SequentialGroup hGroup = gl.createSequentialGroup(); hGroup .addComponent(jbtnApply); hGroup.addGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER) // ERRORS BEGIN HERE { for (JCheckBox c: listCustomiseJCB) { .addComponent(c); }}); // ERRORS END HERE hGroup .addComponent(jbtnCancel); gl.setHorizontalGroup(hGroup);
或者,是否有人知道如何获取ParallelGroup以便我可以在独立的for循环中迭代地将组件添加到该组?
我可以看到你正在尝试做什么以及你的困惑。 您只能对new运算符使用匿名类语法。 即
new LinkedList() { { add("bar"); } };
但是,只能使用工厂方法createParallelGroup(…)创建ParallelGroup实例。
您必须使用对并行组的临时引用:
ParallelGroup pGroup = gl .createParallelGroup(GroupLayout.Alignment.CENTER); hGroup.addGroup(pGroup); for (JCheckBox c : listCustomiseJCB) { pGroup.addComponent(c); }