4

ButtonGroupにいくつかのJRadioButtonがあります。

   private ButtonGroup radioGroup= new ButtonGroup();
   private JRadioButton radio1= new JRadioButton("Red");
   private JRadioButton radio2= new JRadioButton("Green");
   private JRadioButton radio3= new JRadioButton("Blue");

   radioGroup.add(radio1);
   radioGroup.add(radio2);
   radioGroup.add(radio3);

どちらが選択されたかを確認するにはどうすればよいですか?私はのようなものしか得られませ

ん。System.out.println(radioGroup.getSelection())javax.swing.JToggleButton$ToggleButtonModel@32b3714

4

4 に答える 4

6

選択した ButtonModel から、actionCommand 文字列を取得できます (忘れずに設定してください)。

// code not compiled, run, nor tested in any way
ButtonModel model = radioGroup.getSelection();
String actionCommand = (model == null) ? "" : model.getActionCommand():
System.out.println(actionCommand);

ただし、これは最初に actionCommand を設定した場合にのみ機能します。例えば、:

// code not compiled, run, nor tested in any way
String[] colors = {"Red", "Green", "Blue"};
JRadioButton[] radioBtns = new JRadioButton[colors.length];
for (int i = 0; i < radioBtns.length; i++) {
   radioBtns[i] = new JRadioButton(colors[i]);
   radioBtns[i].setActionCommand(colors[i]);
   radioGroup.add(radioBtns[i]);
   somePanel.add(radioBtns[i]);
}
于 2012-04-08T22:33:03.040 に答える
3

リスナーがアタッチされている場合、ソースを特定する簡単な方法は、 を呼び出すことActionEvent.getSource()です。

于 2012-04-08T22:51:48.690 に答える
3

表示されているのは、メソッドのデフォルトの実装ですtoString。そして、選択ButtonGroup#getSelectionした の を返します。ButtonModelJRadioButton

ButtonGroup から選択されている JRadioButton を取得する方法も参照してください。

于 2012-04-08T22:31:30.493 に答える
1

これは、ボタングループから選択されたラジオボタンのテキストを返します

    Enumeration<AbstractButton> allRadioButton=radioGroup.getElements();  
    while(allRadioButton.hasMoreElements())  
    {  
       JRadioButton temp=(JRadioButton)allRadioButton.nextElement();  
       if(temp.isSelected())  
       {  
          JOptionPane.showMessageDialog(null,"You select : "+temp.getText());  
       }  
    }            
于 2013-01-20T17:52:51.710 に答える