Como saber se a tecla TAB foi pressionada? Eu tento capturar a tecla TAB, mas parece que ela não é reconhecida. Já tentei os três métodos KeyListener (pressed, released e typed), mas eles não conseguem capturar a tecla.
Alguém já conseguiu ver se a tecla TAB foi pressionada?
O código abaixo eu tava usando só para verificar a tecla digitada, mas a tecla tab é a única que não passa pelos métodos:
importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjavax.swing.JOptionPane;publicclassTesteTabimplementsKeyListener{publicvoidkeyPressed(KeyEvente){// TODO Auto-generated method stubJOptionPane.showMessageDialog(null,"1: "+KeyEvent.getKeyText(e.getKeyCode()));}publicvoidkeyReleased(KeyEvente){JOptionPane.showMessageDialog(null,"2: "+KeyEvent.getKeyText(e.getKeyCode()));// TODO Auto-generated method stub}publicvoidkeyTyped(KeyEvente){// TODO Auto-generated method stubJOptionPane.showMessageDialog(null,"3: "+KeyEvent.getKeyText(e.getKeyCode()));}}
Eu chamo o código pelo jTextField:
C
ciczan
A tecla ALT é uma tecla modificadora. Não sei como se você pode capturar-la sozinha. Mas é possível ver se ela foi pressionada em combinação com outra (ou outras) pelo método getModifiers() que retorna um int.
Tente colocar:
Em algum dos métodos do seu código para ver o que retorna.
Daí dá pra fazer algo como:
if (e.getModifiers == ActionEvent.ALT_MASK) {
...
}
A tecla TAB é processada antes do tratamento de KeyPressed, portanto você não consegue tratá-la do jeito que você mostrou. Ela é tipicamente usada para mudar de um campo para o outro, portanto o tratamento é o da perda de foco, não o de KeyPressed.