Swing/ToggleButtonGroup のバックアップ(No.14)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ToggleButtonGroup へ行く。
- 1 (2016-06-06 (月) 00:24:55)
- 2 (2016-06-08 (水) 00:13:48)
- 3 (2017-02-27 (月) 18:46:58)
- 4 (2017-03-28 (火) 15:15:57)
- 5 (2017-04-07 (金) 13:51:51)
- 6 (2017-08-15 (火) 14:49:04)
- 7 (2018-08-14 (火) 16:23:30)
- 8 (2020-08-11 (火) 15:16:56)
- 9 (2022-01-01 (土) 01:43:51)
- 10 (2024-01-10 (水) 11:32:34)
- 11 (2025-01-03 (金) 08:57:02)
- 12 (2025-01-03 (金) 09:01:23)
- 13 (2025-01-03 (金) 09:02:38)
- 14 (2025-01-03 (金) 09:03:21)
- 15 (2025-01-03 (金) 09:04:02)
- category: swing
folder: ToggleButtonGroup
title: ButtonGroup中にある選択状態のJToggleButtonをクリックして選択解除可能にする
tags: [ButtonGroup, JToggleButton]
author: aterai
pubdate: 2016-06-06T00:23:27+09:00
description: ButtonGroup中にある選択状態のJToggleButtonをもう一度クリックすることで、その選択を解除できるように設定します。
image:
hreflang:
href: https://java-swing-tips.blogspot.com/2017/02/click-on-already-selected-jtogglebutton.html lang: en
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, KotlinExplanation
Default ButtonGroup
ButtonGroup
に追加されたJToggleButton
などはすでに選択状態にあるボタンをクリックしてもその選択を解除することはできない
Custom ButtonGroup(clears the selection)
ButtonGroup#setSelected(...)
メソッドをオーバーライドして現在選択状態のボタンをクリックした場合はグループ内のすべてのボタンを未選択状態に戻すためにButtonGroup#clearSelection()
メソッドを呼び出す
参考リンク
- java - How to deselect already selected JRadioButton by clicking on it - Stack Overflow
- ButtonGroup内のJRadioButtonなどの選択をクリア