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());