comboBoxChangedFromCode

comboBoxChangedFromCode

如何确定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 {
        ...
    }
}

07-26 01:18