Hallo!
Zuerst einmal. Ich hab es nicht geschafft, die RadioButtons zu deselektieren, aber deaktivieren funktioniert.
Du möchtest wissen, welcher ButtonGroup ein ausgewählter RadioButton angehört? Theoretisch kannst Du die ButtonGroup fragen, denn die Methode getElements() gibt Enumeration zurück.
An Deinen RadioButtons muss ein ActionListener angebunden sein, der die Selektion des Buttons meldet.
Hast Du sowas schon mal programmiert?
Es wird ein ActionEvent an die Methode actionPerformed übergeben. In diesem ActionEvent befindet sich die Referenz auf das verursachende Objekt (dem Button also). Bei „ActionEvent e“ wäre die Referenz mit e.getSource() zu bekommen.
Die ButtonGroups müssen klassenweit deklariert sein, damit Du auf sie aus der Methode actionPerformed heraus zugreifen kannst.
Beispiel:
public class Test extends JFrame implements ActionListener{
private ButtonGroup group1, group2;
public Test(){
setSize(200,300);
setDefaultLookAndFeelDecorated(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle(„JRadioButton-Test“);
JRadioButton radio1 = new JRadioButton(„JRadioButton1“);
radio1.addActionListener(this);
JRadioButton radio2 = new JRadioButton(„JRadioButton2“);
radio2.addActionListener(this);
JRadioButton radio3 = new RadioButton(„JRadioButton4“);
radio3.addActionListener(this);
JRadioButton radio4 = new JRadioButton(„JRadioButton4“);
radio4.addActionListener(this);
JButton resetButton = new JButton(„Zurücksetzen“);
resetButton.addActionListener(this);
resetButton.setActionCommand(„reset“);
group1 = new ButtonGroup();
group1.add(radio1);
group1.add(radio2);
group2 = new ButtonGroup();
group2.add(radio3);
group2.add(radio4);
JPanel radioPanel = new JPanel();
radioPanel.add(radio1);
radioPanel.add(radio2);
radioPanel.add(radio3);
radioPanel.add(radio4);
radioPanel.add(resetButton);
getContentPane().add(radioPanel);
pack();
setVisible();
}
public void actionPerformed(ActionEvent e) {
Enumeration enumeration1 = group1.getElements();
Enumeration enumeration2 = group2.getElements();
if(e.getSource() instanceof JRadioButton){
JRadioButton radio = (JRadioButton) e.getSource();
enumeration1 = group1.getElements();
while(enumeration1.hasMoreElements()){
if(((JRadioButton) enumeration1.nextElement()).equals(radio)){
enumeration2 = group2.getElements();
while(enumeration2.hasMoreElements()){
((JRadioButton) enumeration2.nextElement()).setEnabled(false);
}
return;
}
}
enumeration1 = group1.getElements();
while(enumeration1.hasMoreElements()){
((JRadioButton) enumeration1.nextElement()).setEnabled(false);
}
}
else if(e.getActionCommand().equals(„reset“)){
JRadioButton radio;
while(enumeration1.hasMoreElements()){
radio = ((JRadioButton) enumeration1.nextElement());
radio.setEnabled(true);
}
while(enumeration2.hasMoreElements()){
radio = ((JRadioButton) enumeration2.nextElement());
radio.setEnabled(true);
radio.setSelected(false);
}
}
}
}
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]