如何获取buttonGroup中选定的radioButton的值

Mal*_*ngh 2 java swing jradiobutton buttongroup

如何获取selected的值radioButton?我尝试使用buttonGroup1.getSelection().getActionCommand()(如此处的一些答案中发布的)但它不起作用。另外,我暂时使用这段代码,但我想知道这是一个好的做法吗?

//Consider that maleRButton and femaleRButton are two radioButtons of 
//same buttonGroup
String getGender()
{
    if(maleRButton.isSelected())
    {
        return "Male";
    }
    else if(femaleRButton.isSelected())
    {
        return "Female";
    }
    else
    {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

cam*_*ckr 6

我尝试使用buttonGroup1.getSelection().getActionCommand()

这种方法可行,但由于某种原因,您似乎需要在创建按钮时手动设置操作命令。例如:

JRadioButton maleButton = new JRadioButton( "Male" );
maleButton.setActionCommand( maleButton.getText() );
Run Code Online (Sandbox Code Playgroud)

这实际上对我来说似乎有点错误,因为如果未设置操作命令,操作命令通常默认为文本。


kar*_*g01 5

如果您有多个按钮,您可能应该这样做:

String getSelectedButton()
{  
    for (Enumeration<AbstractButton> buttons = buttonGroup1.getElements(); buttons.hasMoreElements();) {
        AbstractButton button = buttons.nextElement();
        if (button.isSelected()) {
                return button.getText();
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)