Which JRadioButton selected

buttongroup, java, jradiobutton, swing

Solution

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]);
}

Problem

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`.

Original source

Related problems