选择 JComboBox 中的选项时执行的操作

use*_*210 2 java swing actionlistener jcombobox

嗨,我有JComboBox3 个选项,我正在尝试找出actionlistener应用哪个选项,以便在选择一个选项时发生某些事情。目前我的代码是:

comboBoxMode = new JComboBox();
    comboBoxMode.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent arg0) {
            int selection = comboBoxMode.getSelectedIndex();
            switch (selection){
            case 0:  break;
            case 1:  enableNormalModeFeatures(); break;
            case 2:  enableRevisionModeFeatures(); break;
            case 3:  enableTimerModeFeatures(); break;
            }
        }
    });
    comboBoxMode.setModel(new DefaultComboBoxModel(new String[] {"[--Please Select a Mode--]", "Normal", "Revision", "Timer"}));
Run Code Online (Sandbox Code Playgroud)

目的是在选择特定模式时启用页面上的其他选择工具。mouselistener 似乎不起作用。让我感到困惑的是,您实际上必须单击两次才能选择一个选项,但我假设有一些内置代码仅在选择了列表项时才运行?无论如何,任何指针将不胜感激,谢谢大家!

COD*_*BOY 5

我建议使用ItemListener

comboBoxMode = new JComboBox();

comboBoxMode.addItemListener(this);
...
public void itemStateChanged(ItemEvent e) {
    if ((e.getStateChange() == ItemEvent.SELECTED)) {
       int selection = comboBoxMode.getSelectedIndex();
            switch (selection){
            case 0:  break;
            case 1:  enableNormalModeFeatures(); break;
            case 2:  enableRevisionModeFeatures(); break;
            case 3:  enableTimerModeFeatures(); break;
     }
}
Run Code Online (Sandbox Code Playgroud)