tecla tab reconocer como java focus traversal keylistener keyevent

como reconocer la tecla tab en java



¿Cómo puedo escuchar una tecla TAB presionada/escrita en Java? (2)

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

¿Cuál es la forma más sencilla en una gui java para capturar la tecla de tabulación sin usar la técnica de escucha de enfoque?


En el caso de JComboBox editable, este funcionó para mí:

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) { } } });


VK_TAB es la constante de la pestaña.

Sin embargo: 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.

Consulte: http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

Para resolver esto, aplique lo siguiente al componente que está activando los eventos clave (por ejemplo, TextArea):

.setFocusTraversalKeysEnabled(false)

Usando este método, entonces debes manejar explícitamente el recorrido del foco. Alternativamente, la clase KeyEventDispatcher puede usarse para escuchar previamente todos los eventos clave.