如何检查是否选择了任何一个

时间:2016-04-19 22:30:45

标签: java

我有一些JCheckboxes

ap = new JCheckBox("Apple");
ba = new JCheckBox("Banana");
pe = new JCheckBox("Pear");
or = new JCheckBox("Orange");
ma = new JCheckBox("Mango");

我想计算其中有多少被选中,但我对选择的确切选择并不感兴趣。我怎样才能做到这一点?

也许把它们放在CheckBox组中然后使用getState()?不太确定

2 个答案:

答案 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);