我有一些JCheckboxes
ap = new JCheckBox("Apple");
ba = new JCheckBox("Banana");
pe = new JCheckBox("Pear");
or = new JCheckBox("Orange");
ma = new JCheckBox("Mango");
我想计算其中有多少是被选中的,但我对哪些是被选中不感兴趣。我怎样才能做到这一点?
也许把它们放在复选框组中,然后使用getState()
?不太确定
创建复选框时,可以将控件放在List
:中
ap = new JCheckBox("Apple");
ba = new JCheckBox("Banana");
pe = new JCheckBox("Pear");
or = new JCheckBox("Orange");
ma = new JCheckBox("Mango");
List<JCheckBox> checkboxes = new ArrayList<>();
checkboxes.addAll(Arrays.asList({ap, ba, pe, or, ma}));
然后当你想看看检查了多少:
int countOfChecked = checkboxes.stream().filter(JCheckBox::isSelected).count();
如@saka1029所述,您可以使用以下方法省略创建复选框列表:
int countOfChecked = Stream.of(ap, ba, pe, or, ma).filter(JCheckBox::isSelected).count();
e。g.
int i = (ap.isSelected() ? 1 : 0) +
(ba.isSelected() ? 1 : 0) +
(pe.isSelected() ? 1 : 0) +
(or.isSelected() ? 1 : 0) +
(ma.isSelected() ? 1 : 0);