如何检查是否选择了ANY



我有一些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);

最新更新