Is there a way to iterate over a List of Components and add them to a ParallelGroup in Swing GroupLayout?
It seems difficult because there is no method to get hold of the ParallelGroup.
Here is the code generating a List of Components (in this case, JCheckBoxes).
List<JCheckBox> listCustomiseJCB = new ArrayList<>();
for (int w = 0; w < initialCMTableColumns.size(); w++) {
String heading = (String)initialCMTableColumns.get(w).getHeaderValue();
listCustomiseJCB.add(new JCheckBox(heading));
}
The List is working, but how can I iterate over the List to insert each JCheckbox into a GroupLayout's ParallelGroup? For example, the below code won't compile.
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);
Alternatively, does anyone know of a way to get hold of a ParallelGroup so that I could iteratively add Components to that group in a standalone for loop?
I can see what you're trying to do and your confusion. You can only use anonymous class syntax with the new operator. i.e
However ParallelGroup instances can only be created with the factory method createParallelGroup(...).
You'll have to use a temporary reference to the parallel group: