每次检查和取消选中复选框时都要跟踪

时间:2015-07-14 20:41:13

标签: java swing logging real-time jcheckbox

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

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");
    }
}

2 个答案:

答案 0 :(得分:3)

这里的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
        }
    }
});

答案 1 :(得分:1)

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