Sam*_*hdi 0 java swing multi-select jcheckbox buttongroup
我有三个JCheckBox如下:
final JCheckBox c1 = new JCheckBox("A");
final JCheckBox c2 = new JCheckBox("B");
final JCheckBox c3 = new JCheckBox("C");
Run Code Online (Sandbox Code Playgroud)
我通过ButtonGroup为这个复选框创建了一个组,如下所示:
final ButtonGroup bg = new ButtonGroup();
bg.add(c1);
bg.add(c2);
bg.add(c3);
Run Code Online (Sandbox Code Playgroud)
我有一个按钮可以将选定的项目显示在如下标签中:
String SelectedItem="";
Enumeration<AbstractButton> items= bg.getElements();
while (items.hasMoreElements()) {
AbstractButton btn = items.nextElement();
if(btn.isSelected())
{
SelectedItem+=btn.getText()+",";
}
}
lblA.setText(SelectedItem);
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我无法在运行时选中多个复选框.
目的ButtonGroup是多重排序选择.ButtonGroup仅当您想拥有按钮集合时才能创建.而不是ButtonGroup像标准集合那样使用ArrayList.
List<JCheckBox> buttons = new ArrayList<>();
buttons.add(c1);
buttons.add(c2);
buttons.add(c3);
...
for ( JCheckbox checkbox : buttons ) {
if( checkbox.isSelected() )
{
SelectedItem += btn.getText() + ",";
}
}
Run Code Online (Sandbox Code Playgroud)
进一步的注意事项:.setText在Swing事件thread(invokelater)中执行updates(),记住最好在这种连接中创建StringBuilder,但是对于这样的UI组件数量,性能影响可能不会引人注意.
| 归档时间: |
|
| 查看次数: |
10076 次 |
| 最近记录: |