java - 如何为 ButtonGroup setSelected(其中所有 JRadioButton 都是在循环中创建的)?

标签 java swing enums jradiobutton buttongroup

我有以下 for 循环,为每个 ButtonGroup btgrpDiff 创建 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 循环之外为 ButtonGroup btgrpDiff setSelected ?我想在全部选择后直接设置它,或者为枚举中的每个难度级别设置一个 boolean 参数,以确定它们是否在 for 循环中设置为选择状态,但是我不确定哪一个最好,或者如何准确获取 JRadioButtonButtonModel

最佳答案

创建后将按钮放入 ArrayList 中。

作为类变量,你应该有

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

所以在循环内做:

mylist.add(new JRadioButton(diff.name));

然后您可以随时使用 mylist.get(i) 访问它们

关于java - 如何为 ButtonGroup setSelected(其中所有 JRadioButton 都是在循环中创建的)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27550433/

相关文章:

java - 是否可以使用 Jackson JSON 进行非对称序列化和反序列化?

java - 根据条件将测试标记为忽略

java - JFrame 以及为什么保持运行

java - Java 中的 GUI 使用哪个计时器

c# - 将枚举数据绑定(bind)到复选框 C#

java - JAX-RS : Suppress Error Message

java - 我得到 Parent Directory of file is not writable for a SDCard Export

java - 为什么 JavaMail BodyPart.getInputStream() 在使用 IMAP 时返回空流,而在使用 POP3 时则不返回空流?

java - 打包,但不要变小

enums - 无法更改枚举的一个值,因为它是对不可变变量的重新分配