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