概要

ButtonGroup内のボタンが1つも選択されていない状態かどうかを確認します。

サンプルコード

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);
});
View in GitHub: Java, Kotlin

解説

  • ButtonGroup内のボタンが1つも選択されていない状態かどうかをButtonModel#getSelection()メソッドがnullを返すかどうかで確認
  • ButtonGroup#getSelection()メソッドのドキュメントには「選択されたボタンのモデルを返します。」とだけ解説されており、1つも選択されていない場合は何を返すかの記述がない
    • ButtonModelのソースコードではその場合nullを返す実装になっている

参考リンク

コメント