跟踪每次选中和取消选中复选框的时间

Keeping Track of Every Time that a Checkbox is checked and unchecked

我的大部分 java 应用程序已经完成,所以我现在正在记录所有用户 activity。我想跟踪的一件事是每当我的一个复选框被选中和取消选中时。如果对象被选中或未被选中,我可以在最后阅读,但是我想知道每次实时使用复选框。我想知道用户选中和取消选中该框的次数。现在我正在使用类似于此语法的东西,但它不会在每次选中和取消选中复选框时打印一条语句。

public CheckboxAction(String text) {
    super(text);
}

@Override
public void actionPerformed(ActionEvent event) {
    JCheckBox cbLog = (JCheckBox) event.getSource();
    if (cbLog.isSelected()) {
        System.out.println("Logging is enabled");
    } else {
        System.out.println("Logging is disabled");
    }
}

ItemListener 在这里似乎很合适

yourJCheckBox.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent arg0) {
        if (yourJCheckBox.isSelected()) {
            // Code to execute when it's selected
        }
        else {
            // Code to execute when not selected
        }
    }
});

首先,不要覆盖 actionPerformed。如果您需要 - 至少在执行您的操作之前调用 super.actionPerformed。最好的方法是使用 addActionListener 或者在这种情况下如@BoDidely 提到的那样使用 addItemListener.