Anche se la maggior parte delle necessità di ottenere l'input dell'utente sono trattati abbastanza facilmente in Swing attraverso componenti standard - per esempio, ottenere il testo attraverso un componente JTextField - a volte è necessario per ottenere l'esatta pressione di un tasto da parte dell'utente . Forse una specifica combinazione di tasti causerà una certa azione , o forse si vuole evitare che alcuni colpi di chiave da avere il loro effetto predefinito, ad esempio consentendo solo caratteri alfabetici in una casella di testo . Indipendentemente scenario , ottenendo il tasto premuto l' utente è semplice . Cose che ti serviranno
Java SDK
ambiente di sviluppo integrato , come ad esempio Eclipse o NetBeans , consigliato ma non obbligatorio
Show More Istruzioni
1
Creare una semplice classe che crea e visualizza un JFrame per ora :
import java.awt.Dimension ;
importazione java.lang.reflect.InvocationTargetException ;
import javax.swing.JFrame ;
javax.swing.SwingUtilities importazione
;
KeyPressTester public final implementa Runnable {
public static void main (String [] args ) throws InterruptedException , InvocationTargetException {
SwingUtilities.invokeAndWait ( nuovo KeyPressTester ( ) ) ; }
@ Override
public void run ( ) {
frame = new JFrame ( " Tester KeyPress " ) ;
frame.setSize ( new Dimension ( 800 , 600) ) ;
frame.setVisible ( true); }
< p > privato telaio JFrame ;
}
2
Modificare il metodo run () per aggiungere un KeyListener al telaio con la seguente implementazione :
frame.addKeyListener ( nuovo KeyListener ( ) {
@ Override public void
keyTyped ( KeyEvent e) { }
@ Override
pubblico invalidare keyReleased ( KeyEvent e) { }
@ Override public void
keyPressed ( KeyEvent e) {
System.out.println ( "Chiave carattere: "+ e.getKeyChar ( ) +" ; Codice chiave : " + KeyEvent.getKeyText ( e.getKeyCode ( ))) ; }
});
< br >
3
compilare ed eseguire il programma . Se si preme un tasto quando il telaio ha il focus, si dovrebbe vedere l'output della console che descrive il tasto premuto , che comprende sia il vero carattere di testo ( se disponibile) e il testo della chiave , come ad esempio Maiusc , Ctrl , Backspace , ecc