我有一些JCheckboxes
ap = new JCheckBox("Apple");
ba = new JCheckBox("Banana");
pe = new JCheckBox("Pear");
or = new JCheckBox("Orange");
ma = new JCheckBox("Mango");
我想计算其中有多少被选中,但我对选择的确切选择并不感兴趣。我怎样才能做到这一点?
也许把它们放在CheckBox组中然后使用getState()
?不太确定
答案 0 :(得分:4)
创建复选框时,可以将控件放在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();
答案 1 :(得分:0)
即G。
int i = (ap.isSelected() ? 1 : 0) +
(ba.isSelected() ? 1 : 0) +
(pe.isSelected() ? 1 : 0) +
(or.isSelected() ? 1 : 0) +
(ma.isSelected() ? 1 : 0);