Swing/ToggleButtonGroup のバックアップ差分(No.2)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/ToggleButtonGroup へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
---
title: ButtonGroup中にある選択状態のJToggleButtonをクリックして選択解除可能にする
tags: [ButtonGroup, JToggleButton]
author: aterai
pubdate: 2016-06-06T00:23:27+09:00
description: ButtonGroup中にある選択状態のJToggleButtonをもう一度クリックして選択を解除することができるように設定します。
---
* 概要 [#pd2d3f67]
`ButtonGroup`中にある選択状態の`JToggleButton`をもう一度クリックして選択を解除することができるように設定します。
#download(https://lh3.googleusercontent.com/-xZ1YFhJedcg/V1Q_LKyzhzI/AAAAAAAAOao/S-uPsKtdlg8k1eWf2yCIGnh4Hw2r7bGNACCo/s800/ToggleButtonGroup.png)
* サンプルコード [#q72dbcaa]
#code(link){{
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();
}
}
}}
* 解説 [#l641ec4d]
- `Default ButtonGroup`
-- `ButtonGroup`に追加された`JTobbleButton`などは、すでに選択状態にあるボタンをクリックして選択解除することはできない
- `Custom ButtonGroup(clears the selection)`
-- `ButtonGroup#setSelected(...)`メソッドをオーバーライドし、選択状態にあるボタンをクリックした場合は、`ButtonGroup#clearSelection()`メソッドを呼び出してグループ内のすべてのボタンが選択されていない状態に戻す
* 参考リンク [#v9540529]
- [http://stackoverflow.com/questions/37598206/how-to-deselect-already-selected-jradiobutton-by-clicking-on-it/37607560#37607560 java - How to deselect already selected JRadioButton by clicking on it - Stack Overflow]
- [[ButtonGroup内のJRadioButtonなどの選択をクリア>Swing/ClearGroupSelection]]
* コメント [#k59462e4]
#comment
#comment