December 24
Sebbene la maggior parte ha bisogno di ottenere l'input dell'utente sono gestite facilmente in Swing tramite componenti standard - per esempio, ottenere testo attraverso un componente JTextField - a volte è necessario per ottenere le pressioni dei tasti precise da parte dell'utente. Forse una combinazione di tasti specifica causerà una certa azione, o forse si vuole evitare che alcuni colpi di chiave da avere il loro effetto di default, come ad esempio consentendo solo caratteri alfabetici in una casella di testo. Indipendentemente scenario, ottenendo il tasto premuto dall'utente è semplice.
1 Creare una semplice classe che crea e visualizza un JFrame per ora:
import java.awt.Dimension;
import java.lang.reflect.InvocationTargetException;
import javax.swing.JFrame;
javax.swing.SwingUtilities importazione;
pubblico KeyPressTester final class implementa Runnable {
public static void main(String[] args) throws InterruptedException, InvocationTargetException {
SwingUtilities.invokeAndWait (nuova KeyPressTester ());
}
@Override
public void run () {
frame = new JFrame ( "KeyPress Tester");
frame.setSize (nuova dimensione (800, 600));
frame.setVisible (true);
}
cornice JFrame privato;
}
2 Modificare il metodo run () per aggiungere un KeyListener al telaio con la seguente implementazione:
frame.addKeyListener(new KeyListener() {
@Override
public void keyTyped (KeyEvent e) {
}
@Override
public void keyReleased (KeyEvent e) {
}
@Override
public void keyPressed (KeyEvent e) {
System.out.println ( "Character chiave:" + e.getKeyChar () + "; Codice chiave:" + KeyEvent.getKeyText (e.getKeyCode ()));
}
});
3 Compilare ed eseguire il programma. Se si preme un tasto quando il telaio è a fuoco, si dovrebbe vedere l'uscita della console che descrive il tasto premuto, che comprende sia il carattere del testo vero e proprio (se disponibile) e il testo della chiave, come ad esempio Shift, Ctrl, Backspace, etc.