繁体   English   中英

如何确定JComboBox ActionListener是从代码触发还是由用户触发

[英]How to determine whether JComboBox ActionListener is triggered from code or by user

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM