Originariamente inviato da Patrick Jane
Sto utilizzando un KeyPressed() per ricevere gli eventi di pressione dei tasti, ma come mi è stato suggerito da andbin in un altro post non è il massimo.
Quale devo utilizzare per avere anche le combinazioni di tasti ad esempio con CTRL?
Tecnicamente sempre con keyPressed(). Solo che la questione è più particolare, perché i vari Ctrl, Alt ecc.. sono dei "modificatori" trattati in modo più specifico.

Se come sequenza fai: premo Ctrl, premo A, rilascio A, rilascio Ctrl, tecnicamente ottieni come invocazioni:

keyPressed con e.getKeyCode() = VK_CONTROL
keyPressed con e.getKeyCode() = VK_A
keyReleased con e.getKeyCode() = VK_A
keyReleased con e.getKeyCode() = VK_CONTROL

E i keyPressed si possono ripetere se tieni premuto, ovviamente.

Se devi solo "sentire" il tasto Ctrl (come se fosse un qualunque altro tasto), lo tratti nei metodi sopra come "key code".
Se devi trattarlo come "modificatore" di un altro tasto, non devi tenerti tu nessun "flag" perché avevi trovato il VK_CONTROL prima! Infatti KeyEvent ha i metodi:

- isControlDown() / isAltDown() / ecc.... isXXXDown()
- getModifiers() / getModifiersEx() per ottenere le combinazioni di flag relative a pulsanti del mouse e modificatori Ctrl ecc...

Originariamente inviato da Patrick Jane
sto utilizzando anche un DocumentListener per "ascoltare" ogni pressione
Per essere precisi, con DocumentListener non senti di per sé le pressioni dei tasti .... ricevi notifica delle modifiche, in generale, al Document, che possono avvenire in svariati modi: digitazione dell'utente, azione di "incolla", modifica da codice direttamente sul Document o attraverso il componente di testo (es. setText() ecc...).