gpt4 book ai didi

java - 如何选择多个JCheckBoxe到ButtonGroup中?

转载 作者:行者123 更新时间:2023-12-01 06:35:13 25 4
gpt4 key购买 nike

我有三个 JCheckBox,如下所示:

final JCheckBox c1 = new JCheckBox("A");
final JCheckBox c2 = new JCheckBox("B");
final JCheckBox c3 = new JCheckBox("C");

我按 ButtonGroup 为此复选框创建一个组,如下所示:

final ButtonGroup bg = new ButtonGroup();
bg.add(c1);
bg.add(c2);
bg.add(c3);

我有一个按钮可以将选定的项目显示到标签中,如下所示:

String SelectedItem=""; 
Enumeration<AbstractButton> items= bg.getElements();
while (items.hasMoreElements()) {
AbstractButton btn = items.nextElement();
if(btn.isSelected())
{
SelectedItem+=btn.getText()+",";
}
}
lblA.setText(SelectedItem);

这工作正常,但我无法在运行时选择多个复选框。

最佳答案

ButtonGroup 的目的是多重独占选择。仅当您想要拥有按钮集合时,才不要创建 ButtonGroup。使用 ArrayList 等标准集合代替 ButtonGroup

List<JCheckBox> buttons = new ArrayList<>();
buttons.add(c1);
buttons.add(c2);
buttons.add(c3);

...

for ( JCheckbox checkbox : buttons ) {
if( checkbox.isSelected() )
{
SelectedItem += btn.getText() + ",";
}
}

进一步注意事项:在 Swing 事件线程 (invokelater) 中进行更新 (.setText),请记住,最好在此类串联中创建 StringBuilder,但使用 UI 组件像这样的数量,性能影响可能不会明显。

关于java - 如何选择多个JCheckBoxe到ButtonGroup中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com