ButtonGroup中にある選択状態のJToggleButtonをクリックして選択解除可能にする
Total: 5731, Today: 2, Yesterday: 2
Posted by aterai at
Last-modified:
Summary
ButtonGroup中にある選択状態のJToggleButtonをもう一度クリックすることで、その選択を解除できるように設定します。
Screenshot

Advertisement
Source Code Examples
class ToggleButtonGroup extends ButtonGroup {
private ButtonModel prevModel;
private boolean isAdjusting;
@Override public void setSelected(ButtonModel m, boolean b) {
if (isAdjusting) {
return;
}
if (m.equals(prevModel)) {
isAdjusting = true;
clearSelection();
isAdjusting = false;
} else {
super.setSelected(m, b);
}
prevModel = getSelection();
}
}
View in GitHub: Java, KotlinDescription
Default ButtonGroupButtonGroupに追加されたJToggleButtonなどはすでに選択状態にあるボタンをクリックしてもその選択を解除することはできない
Custom ButtonGroup(clears the selection)ButtonGroup#setSelected(...)メソッドをオーバーライドして現在選択状態のボタンをクリックした場合はグループ内のすべてのボタンを未選択状態に戻すためにButtonGroup#clearSelection()メソッドを呼び出す
Reference
- java - How to deselect already selected JRadioButton by clicking on it - Stack Overflow
- ButtonGroup内のJRadioButtonなどの選択をクリア