Java 如果ButtonGroup的所有JRadioButtons都是在一个循环中创建的,那么如何为该ButtonGroup设置Selected?

Java 如果ButtonGroup的所有JRadioButtons都是在一个循环中创建的,那么如何为该ButtonGroup设置Selected?,java,swing,enums,jradiobutton,buttongroup,Java,Swing,Enums,Jradiobutton,Buttongroup,对于我的难度

对于我的
难度
中的每个值,我为
按钮组
循环创建
JRadioButton
提供了以下
功能:

private enum Difficulty {
    EASY("Easy"),
    MEDIUM("Medium"),
    HARD("Hard"),
    EXTRA_HARD("Extra Hard");

    public final String name;

    private Difficulty(String name) {
        this.name = name;
    }
}

for (Difficulty diff : Difficulty.values()) {
    JRadioButton radDiff = new JRadioButton(diff.name);
    radDiff.setActionCommand(diff.name);
    btgrpDiff.add(radDiff);
    panDiff.add(radDiff, "align 50%, shrink 2, wrap");
}

如何在
for
循环的
之外为
按钮组
btgrpDiff
设置选中的
?我想在它们全部被选中后直接设置,或者在枚举中为每个难度级别设置一个布尔参数,以确定它们是否在
for
循环中被设置为选中,但我不确定哪一个是最好的,或者如何准确获取
JRadioButton
s的
ButtonModel

创建按钮后,将按钮放入ArrayList

作为类变量,您应该

ArrayList<JRadioButton> mylist = new ArrayList<JRadioButton>()

然后,您可以随时使用mylist访问它们。获取(i)

或将它们放在地图中,然后您可以直接获取它们:

Map<Difficulty,JRadioButton> rButtons = new HashMap<Difficulty,JRadioButton>();

for (Difficulty diff : Difficulty.values()) {
  JRadioButton radDiff = new JRadioButton(diff.name);
  rButtons.put(diff,radDiff);
  btgrpDiff.add(radDiff);
...
}
Map rButtons=newhashmap();
for(难度差:难度值()){
JRadioButton radDiff=新的JRadioButton(diff.name);
rButtons.put(diff,radDiff);
btgrpDiff.add(radDiff);
...
}

创建时将它们放入列表中,然后您可以在列表中迭代,并在所有需要的按钮上运行该方法
Map<Difficulty,JRadioButton> rButtons = new HashMap<Difficulty,JRadioButton>();

for (Difficulty diff : Difficulty.values()) {
  JRadioButton radDiff = new JRadioButton(diff.name);
  rButtons.put(diff,radDiff);
  btgrpDiff.add(radDiff);
...
}