如何在Java中按下/键入TAB键?

private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { //cant capture my TAB? System.out.print(evt.getKeyChar()); } 

在没有使用焦点监听技术的情况下,java gui中捕获tab键的最简单方法是什么?

VK_TAB是制表符常量。

但是: No Tab key-pressed or key-released events are received by the key event listener. This is because the focus subsystem consumes focus traversal keys, such as Tab and Shift Tab. No Tab key-pressed or key-released events are received by the key event listener. This is because the focus subsystem consumes focus traversal keys, such as Tab and Shift Tab.

请参阅: http : //docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

要解决此问题,请将以下内容应用于触发键事件的组件(例如,TextArea):

.setFocusTraversalKeysEnabled(false)

使用此方法,您必须显式处理焦点遍历。 或者, KeyEventDispatcher类可用于预先监听所有键事件。

在可编辑的JComboBox的情况下,这个适用于我:

  txt.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, Collections.emptySet()); txt.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent event) { if (event.getKeyChar() == KeyEvent.VK_TAB) { } } });