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