我的大部分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");
}
}
答案 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
。