我很难弄清楚为什么我的单选按钮不会分组。以下是我的代码。
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);
}
答案 0 :(得分:2)
您的代码格式化:
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,因此每个单选按钮都分配给它自己的按钮组。这不是ButtonGroups的工作方式,因为它们要求将所有分组切换按钮(例如JRadioButtons)添加到单个ButtonGroup中。
解决方案是只创建一个 ButtonGroup,在
// 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);
}