I have several JRadioButtons in a ButtonGroup.
private ButtonGroup radioGroup= new ButtonGroup();
private JRadioButton radio1= new JRadioButton("Red");
private JRadioButton radio2= new JRadioButton("Green");
private JRadioButton radio3= new JRadioButton("Blue");
radioGroup.add(radio1);
radioGroup.add(radio2);
radioGroup.add(radio3);
How can I check which one was selected?
With System.out.println(radioGroup.getSelection())
I only get something like javax.swing.JToggleButton$ToggleButtonModel@32b3714
.
From the selected ButtonModel, you can get the actionCommand String (if you remember to set it!).
// code not compiled, run, nor tested in any way
ButtonModel model = radioGroup.getSelection();
String actionCommand = (model == null) ? "" : model.getActionCommand():
System.out.println(actionCommand);
But this will only work if you set the actionCommand first. e.g.,:
// code not compiled, run, nor tested in any way
String[] colors = {"Red", "Green", "Blue"};
JRadioButton[] radioBtns = new JRadioButton[colors.length];
for (int i = 0; i < radioBtns.length; i++) {
radioBtns[i] = new JRadioButton(colors[i]);
radioBtns[i].setActionCommand(colors[i]);
radioGroup.add(radioBtns[i]);
somePanel.add(radioBtns[i]);
}
What you're seeing is the default implementation of the toString
method. And ButtonGroup#getSelection
will return the ButtonModel
of the selected JRadioButton
.
See also How do I get which JRadioButton is selected from a ButtonGroup.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With