问题
i want to setSelected a speicfic jradiobutton in a buttongroup based on the actionCommand(/name of the specific jradiobutton).
it could be done usind .setSelected(true)
for example,
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);
now.. without ,
{ rabbitButton.setSelected(true);} NOR {group.setSelected(rabbitButton.getModel,true)}
is there a way to setSelected(true) rabbitButton based on the action command()?
回答1:
yourButtonGroup.clearSelection();
yourRadioButton.setSelected(true);
回答2:
The ButtonGroup#getElements method gives you an enumeration of AbstractButton
instances. The AbstractButton#getActionCommand allows you to retrieve the action command and the AbstractButton#getSelected allows you to alter the selection.
So there is a way, but you will have to loop over the enumeration yourself.
回答3:
I created a small method that allow me to set any radio group button. Very convenient if you don't want to use if for any radio button.
public void setButtonGroup(String rdValue, Enumeration elements ){
while (elements.hasMoreElements()){
AbstractButton button = (AbstractButton)elements.nextElement();
if(button.getActionCommand().equals(rdValue)){
button.setSelected(true);
}
}
}
then
setButtonGroup(yourValue, yourButtonGroup.getElements());
来源:https://stackoverflow.com/questions/8875674/setselected-a-specific-jradiobutton-in-a-buttongroup-based-on-action-command