[英]Multi selection problem on Swing JCheckbox
我有一个复选框列表,但我无法从此列表中进行多项选择,当我选中一个新框时,它会禁用先前的选择。 如何更改我的代码? 或者,如果它看起来不错,但不小心我在代码的其他地方做错了什么。
public JPanel createMultiMenu(ArrayList<String> domainItems) {
checkBoxMenuPanel = new JPanel();
checkBoxMenuPanel.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = GridBagConstraints.RELATIVE;
gbc.anchor = GridBagConstraints.WEST;
ButtonGroup group = new ButtonGroup();
for (String item : domainItems) {
JCheckBox checkBox = new JCheckBox(item);
group.add(checkBox);
checkBoxMenuPanel.add(checkBox,gbc);
}
return checkBoxMenuPanel;
}
这就是 ButtonGroup 的工作方式,您可以 select 组中的任何按钮,但一次只能选择 1 个。 通常也为此使用 JRadioButton。
如果您希望能够 select 多个复选框,则不要使用 ButtonGroup。
您可能需要 JRadioButtons 吗? 使用 ButtonGroup 并在组中添加所有单选按钮。 之后,如果您之前选择的 select 中的任何一个都会丢失所选的 state。
问题是您正在使用 ButtonGroup,它将放置在其中的对象视为单选按钮(一次只能 select 一个)。
而是尝试将它们添加到 JPanel。
public JPanel createMultiMenu(ArrayList<String> domainItems) {
checkBoxMenuPanel = new JPanel();
checkBoxMenuPanel.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = GridBagConstraints.RELATIVE;
gbc.anchor = GridBagConstraints.WEST;
for (String item : domainItems) {
JCheckBox checkBox = new JCheckBox(item);
checkBoxMenuPanel.add(checkBox, gbc);
}
return checkBoxMenuPanel;
}
类似的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.