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);
...
}