如何确定JComboBox触发的ActionEvent是由用户从GUI引起,还是由从代码中调用comboBox.setSelectedItem("something")
引起的?还是其他任何事件?
最佳答案
使用布尔变量来跟踪何时自己更改值:
private JComboBox<String> comboBox;
private boolean comboBoxChangedFromCode = false;
在更改值时设置该变量:
comboBoxChangedFromCode = true;
comboBox.setSelectedItem(...);
comboBoxChangedFromCode = false;
检查组合框的ActionListener中的值:
public void actionPerformed(ActionEvent e) {
if (comboBoxChangedFromCode) {
...
} else {
...
}
}