按键侦听器仅在按下Enter键时有效。不适用于其他键

时间:2018-03-10 13:15:46

标签: java swing user-interface awt javax

当我按“Enter”时,此代码工作正常,但是当我按其他键时则不行。我在可编辑的JComboBox中添加了一个关键事件,仅在按下“Enter”键时才有效。我还想将一个事件添加到另一个键。

comboBox.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
    @Override
    public void keyTyped(KeyEvent e) {
        int keyChar = e.getKeyChar();
        if (keyChar == KeyEvent.VK_ENTER) {
            textField.requestFocus();
        }    
        if (keyChar == KeyEvent.VK_TAB) { // tried other key also such as shift,alt,decimal...  
            textField_2.requestFocus();
        }        
    }
});

1 个答案:

答案 0 :(得分:0)

用于焦点事件的某些键(如TAB)(例如,从组件到组件的标签)已经被焦点子系统使用,这就是为什么你没有在你的键监听器上看到它们。 https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html。阅读标有版本注释的部分。本文还提供了有关捕获TAB和其他焦点键的方法的替代方法。