我很难弄清楚为什么我的单选按钮无法分组。下面是我的代码。
for (String color : colors.keySet()) {
JRadioButton button = new JRadioButton(color);
ButtonGroup group = new ButtonGroup();
group.add(button);
button.setOpaque(false);
buttonPanel.add(button);
button.addActionListener(listener);
}
最佳答案
您的代码格式:
for (String color : colors.keySet()) {
JRadioButton button = new JRadioButton(color);
ButtonGroup group = new ButtonGroup();
group.add(button);
button.setOpaque(false);
buttonPanel.add(button);
button.addActionListener(listener);
}
您将在循环的每次迭代中创建一个新的 ButtonGroup,因此每个单选按钮都会分配给其自己的按钮组。这不是 ButtonGroup 的工作方式,因为它们要求将所有分组的切换按钮(例如 JRadioButton)添加到单个 ButtonGroup。
解决方案是仅创建一个 ButtonGroup,在for 循环之前执行此操作,然后将每个 JRadioButton 添加到循环内的该组。例如:
// do this *before* the for-loop
ButtonGroup group = new ButtonGroup();
for (String color : colors.keySet()) {
JRadioButton button = new JRadioButton(color);
// ButtonGroup group = new ButtonGroup(); // not *inside* the for loop
group.add(button); // then use it here
button.setOpaque(false);
buttonPanel.add(button);
button.addActionListener(listener);
}
关于java - 使用集合 .txt 文件中的 Map TreeSet 对单选按钮进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18282980/