我有一个复选框,当选中该复选框时,我想将int 2添加到我的总数中。然后,我希望能够取消选择它,然后将int 2减去我的总数。

目前,我无法取消选择并减去2。

另外,我的复选框在按钮组中,因此我需要使用clearSelection()作为取消选择的解决方案。

我目前为此使用的代码是(效果不太好):

monTill4ChckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {

            if(monTill4ChckBox.isSelected()){

                mondayCost= mondayCost + 2;
            }
            else{
            mondayCost= mondayCost - 2;
            monAftergroup.clearSelection();
            }

最佳答案

我认为您应该将项目侦听器添加到复选框以正确侦听检查状态。
像这样的东西;

monTill4ChckBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent arg0) {
            if(monTill4ChckBox.isSelected()){
                mondayCost= mondayCost + 2;
            }
            else{
                mondayCost= mondayCost - 2;
                monAftergroup.clearSelection();
            }
            System.err.println("Counter: " + mondayCost);
        }
    });

09-05 09:05