Swing/ButtonGroupEmptySelection の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/ButtonGroupEmptySelection へ行く。
- Swing/ButtonGroupEmptySelection の差分を削除
--- category: swing folder: ButtonGroupEmptySelection title: ButtonGroup内のボタンが選択されているかを確認する tags: [ButtonGroup, JToggleButton] author: aterai pubdate: 2018-12-10T16:19:43+09:00 description: ButtonGroup内のボタンが1つも選択されていない状態かどうかを確認します。 image: https://drive.google.com/uc?id=1EFXEFMWUlrctxFnVQEQbK1zeW3wSIhoROw --- * 概要 [#summary] `ButtonGroup`内のボタンが`1`つも選択されていない状態かどうかを確認します。 #download(https://drive.google.com/uc?id=1EFXEFMWUlrctxFnVQEQbK1zeW3wSIhoROw) * サンプルコード [#sourcecode] #code(link){{ ButtonGroup bg = new ToggleButtonGroup(); JPanel p = new JPanel(); Stream.of("A", "B", "C").map(JToggleButton::new).forEach(r -> { r.setActionCommand(r.getText()); p.add(r); bg.add(r); }); JLabel label = new JLabel(); JButton button = new JButton("check"); button.addActionListener(e -> { String txt = Optional.ofNullable(bg.getSelection()) .map(b -> String.format("\"%s\" isSelected.", b.getActionCommand())) .orElse("Please select one of the option above."); label.setText(txt); }); }} * 解説 [#explanation] - `ButtonGroup`内のボタンが`1`つも選択されていない状態かどうかを`ButtonModel#getSelection()`メソッドが`null`を返すかどうかで確認 - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/ButtonGroup.html#getSelection-- ButtonGroup#getSelection()]メソッドのドキュメントには「選択されたボタンのモデルを返します。」とだけ解説されており、`1`つも選択されていない場合はで何が返されるかは記述されていない - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/ButtonGroup.html#getSelection-- ButtonGroup#getSelection()]メソッドのドキュメントには「選択されたボタンのモデルを返します。」とだけ解説されており、`1`つも選択されていない場合は何を返すかの記述がない -- `ButtonModel`のソースコードではその場合`null`を返す実装になっている * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/ButtonGroup.html#getSelection-- ButtonGroup#getSelection() (Java Platform SE 8)] - [[ButtonGroup中にある選択状態のJToggleButtonをクリックして選択解除可能にする>Swing/ToggleButtonGroup]] - [[ButtonGroup内のJRadioButtonなどの選択をクリア>Swing/ClearGroupSelection]] * コメント [#comment] #comment #comment