setSelected基于动作命令在buttongroup中的特定jradiobutton

我想基于actionCommand(/特定jradiobutton的名称)在一个buttongroup中设置一个特定的jradiobutton。

它可以做到usind .setSelected(true)

例如,

JRadioButton rabbitButton = new JRadioButton("rabbit"); rabbitButton .setActionCommand("rabbit"); JRadioButton pigButton = new JRadioButton("pig"); pigButton .setActionCommand("pig"); ButtonGroup group = new ButtonGroup(); group.add(rabbitButton); group.add(pigButton); 

现在..没有,

{rabbitButton.setSelected(true);} NOR {group.setSelected(rabbitButton.getModel,true)}

有没有办法根据动作命令()设置setSelected(true)rabbitButton?

ButtonGroup#getElements方法为您提供了AbstractButton实例的枚举。 AbstractButton#getActionCommand允许您检索动作命令,而AbstractButton#getSelected允许您更改选择。

所以有一种方法,但你必须自己循环遍历枚举。

 yourButtonGroup.clearSelection(); yourRadioButton.setSelected(true); 

我创建了一个小方法,允许我设置任何单选按钮组。 如果您不想使用if用于任何单选按钮,则非常方便。

 public void setButtonGroup(String rdValue, Enumeration elements ){ while (elements.hasMoreElements()){ AbstractButton button = (AbstractButton)elements.nextElement(); if(button.getActionCommand().equals(rdValue)){ button.setSelected(true); } } } 

然后

 setButtonGroup(yourValue, yourButtonGroup.getElements());