Swing/ButtonGroupEmptySelection のバックアップの現在との差分(No.4)
- 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
概要
ButtonGroup
内のボタンが1
つも選択されていない状態かどうかを確認します。
Screenshot
Advertisement
サンプルコード
#spanadd
ButtonGroup bg = new ToggleButtonGroup();
#spanend
#spanadd
JPanel p = new JPanel();
#spanend
#spanadd
Stream.of("A", "B", "C").map(JToggleButton::new).forEach(r -> {
#spanend
r.setActionCommand(r.getText());
p.add(r);
bg.add(r);
#spanadd
});
#spanend
#spanadd
#spanend
#spanadd
JLabel label = new JLabel();
#spanend
#spanadd
JButton button = new JButton("check");
#spanend
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);
// ButtonModel bm = bg.getSelection();
// if (bm != null) {
// label.setText(String.format("\"%s\" isSelected.", bm.getActionCommand()));
// } else {
// label.setText("Please select one of the option above.");
// }
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、ButtonGroup
内のボタンが1
つも選択されていない状態かどうかをButtonModel#getSelection()
メソッドがnull
を返すかどうかで確認しています。
-
ButtonGroup
内のボタンが1
つも選択されていない状態かどうかをButtonModel#getSelection()
メソッドがnull
を返すかどうかで確認 - ButtonGroup#getSelection()メソッドのドキュメントには「選択されたボタンのモデルを返します。」とだけ解説されており、
1
つも選択されていない場合は何を返すかの記述がない-
ButtonModel
のソースコードではその場合null
を返す実装になっている
-
- ButtonGroup#getSelection()メソッドのドキュメントには「選択されたボタンのモデルを返します。」とだけ解説されており、
1
つも選択されていない場合はで何が返されるかは記述されていない-
ButtonModel
のソースコードではその場合null
が返る実装になっている
-
参考リンク
- ButtonGroup#getSelection() (Java Platform SE 8)
- ButtonGroup中にある選択状態のJToggleButtonをクリックして選択解除可能にする
- ButtonGroup内のJRadioButtonなどの選択をクリア