basta poi sull'array di checkbox
EDIT: aggiunta
riprendendo l'esempio di prima:
codice:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
/**
*
* @author Andrea
*/
public class ButtonGroupsDemo extends JFrame {
private JPanel[] panels = new JPanel[5];
private JCheckBox[][] manyCheckBox = new JCheckBox[panels.length][3];
private ButtonGroup[] groups = new ButtonGroup[manyCheckBox[0].length];
private TitledBorder border;
private class MySubmitAction implements ActionListener {
JCheckBox[][] manyCheckBox;
public MySubmitAction(JCheckBox[][] manyCheckBox) {
this.manyCheckBox = manyCheckBox;
}
public void actionPerformed (ActionEvent ae) {
for (int i = 0; i < manyCheckBox.length; i++) {
for (int j=0; j < manyCheckBox[i].length; j++) {
System.out.print(manyCheckBox[i][j].getText()+" : "+manyCheckBox[i][j].isSelected()+" | ");
}
System.out.println("\n______________________________");
}
}
}
public void initialize(JPanel panel) {
// creiamo i checkbox
for (int i = 0; i < manyCheckBox.length; i++) {
for (int j = 0; j < manyCheckBox[i].length; j++) {
manyCheckBox[i][j] = new JCheckBox("Pannello "+(i+1)+", Gruppo-Checkbox "+(j+1));
}
}
// creiamo i buttongroups
for (int i = 0; i< groups.length; i++) {
groups[i] = new ButtonGroup();
// raggruppiamo le checkbox
for (int j = 0; j < manyCheckBox.length; j++) {
groups[i].add(manyCheckBox[j][i]);
}
}
// creiamo i pannelli
for (int i = 0; i < panels.length; i++) {
panels[i] = new JPanel();
border = BorderFactory.createTitledBorder("Pannello "+(i+1));
panels[i].setBorder(border);
// aggiungiamo i checkbox
for (int j = 0; j < manyCheckBox[i].length; j++) {
panels[i].add(manyCheckBox[i][j]);
}
// aggiungiamo i pannelli al pannnello principale
panel.add(panels[i]);
}
}
public ButtonGroupsDemo() {
super("Molti pannelli, e ancora più CheckBoxes");
JPanel center = new JPanel(new GridLayout(panels.length,1));
initialize(center);
JButton submitForm = new JButton("SUBMIT");
submitForm.addActionListener(new MySubmitAction(manyCheckBox));
this.getContentPane().add(new JScrollPane(center), BorderLayout.CENTER);
this.getContentPane().add(submitForm, BorderLayout.SOUTH);
this.setSize(600,600);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String[] args) {
new ButtonGroupsDemo();
}
}