When displaying a group of JRadioButtons, initially none of them is selected (unless you programmatically enforce that). I would like to be able to put buttons back into tha
You can use a click counter:
private ButtonGroup radioGroup = new javax.swing.ButtonGroup();
private JRadioButton jRadioBtn1 = new javax.swing.JRadioButton();
private int clickCount = 0;
private void jRadioBtn1Clicked(java.awt.event.MouseEvent evt) {
// Remove selection on a second click
if (jRadioBtn1.isSelected()) {
if (++clickCount % 2 == 0) {
radioGroup.clearSelection();
}
}
}
In my case I use Jgoodies project to bind GUI components to Java model. The RadioButton component is bound to a field
class Model {
private SomeJavaEnum field; // + getter, setter
}
In such case ButtonGroup.clearSelection
doesn't work since the old value still retains in the model. Straightforward solution was to simply setField(null)
.
Or you can use Darryl's Select Button Group which doesn't require you to use an "invisible button".
When you want to deselect, select invisible. For that you add a third invisible button to the button group.