Selv om de fleste behov for at få input fra brugeren håndteres ganske let i Swing via standard komponenter - for eksempel , at få tekst gennem en JTextField komponent - nogle gange er det nødvendigt at få de nøjagtige tastetryk fra brugeren. Måske en bestemt tastekombination vil forårsage en bestemt handling , eller måske du ønsker at undgå visse tastetryk fra at have deres standard effekt , såsom at tillade kun alfabetiske tegn i en tekstboks. Uanset scenariet , få nøglen den pressede brugeren er enkel. Ting du skal
Java SDK
Integrated Development Environment , såsom Eclipse eller NetBeans , anbefales, men ikke kræves
Vis Flere Instruktioner
1
Oprette et simpelt klasse der skaber og viser en JFrame for nu : Hej
import java.awt.Dimension ,
import java.lang.reflect.InvocationTargetException ,
import javax.swing.JFrame ; Salg
import javax.swing.SwingUtilities ,
offentlig afsluttende klasse KeyPressTester implementerer Runnable {
public static void main (String [] args ) kaster InterruptedException , InvocationTargetException {
SwingUtilities.invokeAndWait (ny KeyPressTester ());
}
@ Override
public void run () {
frame = new JFrame ( " tastetryk Tester ")
frame.setSize (ny dimension (800 , 600 )),
frame.setVisible (sand) ,
}
< p> private JFrame frame ,
}
2
Rediger run () metode til at tilføje en KeyListener til rammen med følgende implementering : Hej
frame.addKeyListener (ny KeyListener () {
@ Override
public void keyTyped ( KeyEvent e ) {
}
@ Override
offentligheden ugyldiggøre keyReleased ( KeyEvent e ) {
}
@ Override
public void keyPressed ( KeyEvent e ) {
System.out.println ( " Key karakter: "+ e.getKeyChar ( ) + " Key Code: "+ KeyEvent.getKeyText ( e.getKeyCode ( ))) ;
}
} )
< br >
3
Kompiler og udføre programmet. Hvis du trykker på en tast , når rammen er i fokus , bør du se konsol output , der beskriver den nøgle, du trykkede , herunder såvel den faktiske tekst tegn ( hvis de findes) , og teksten til den nøgle, som Shift, Ctrl , Backspace , etc. KAYAK