SWT - Erfassen von Tastaturereignissen
In SWT wird das Tastaturereignis durch die KlasseKeyEventdargestellt. Wir könnenKeyListener verwenden, umKeyEvent zu empfangen und zu verarbeiten.
Die KlasseKeyEventhat drei Mitgliedsfelder, um Informationen über den vom Ereignis generierten Schlüssel bereitzustellen.
1) Zeichen - Zeigt einen Zeichenwert der gedrückten Taste an.
2) stateMask - Überprüfen Sie, ob derzeit andere Tasten gedrückt wurden. (häufig zum Erfassen von STRG-, ALT- und UMSCHALTTASTEN).
3) keyCode - Zeigt einen Ziffernwert der gedrückten Taste an.
Wir können einem Widget-SteuerelementKeyListener() oderKeyAdapter() hinzufügen, um das Tastaturereignis zu verfolgen.
"widget control".addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { } });
Überprüfen Sie, ob die TasteALTaktuell gedrückt wird
if ((e.stateMask & SWT.ALT) != 0)
Überprüfen Sie, ob die TasteBACKSPACEgedrückt wurde
if(e.keyCode == SWT.BS)
P.S Please Check SWT class for other keyboard events.
Überprüfen Sie, obcharacter gedrückt ist
if(e.keyCode >=97 && e.keyCode <=122)
Überprüfen Sie, obdigit gedrückt ist
if(e.keyCode >=48 && e.keyCode <=57)
Hier ist die vollständige Quelle, in der gezeigt wird, wie das Tastaturereignis erfasst wird.
import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class SWTKeyEvent { public static void main (String [] args) { Display display = new Display (); Shell shell = new Shell(display); shell.setText("SWT KeyEvent Example"); shell.setLayout(new FillLayout()); Button button = new Button(shell, SWT.CENTER); button.setText("Type Something"); button.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { String string = ""; //check click together? if ((e.stateMask & SWT.ALT) != 0) string += "ALT - keyCode = " + e.keyCode; if ((e.stateMask & SWT.CTRL) != 0) string += "CTRL - keyCode = " + e.keyCode; if ((e.stateMask & SWT.SHIFT) != 0) string += "SHIFT - keyCode = " + e.keyCode; if(e.keyCode == SWT.BS) { string += "BACKSPACE - keyCode = " + e.keyCode; } if(e.keyCode == SWT.ESC) { string += "ESCAPE - keyCode = " + e.keyCode; } //check characters if(e.keyCode >=97 && e.keyCode <=122) { string += " " + e.character + " - keyCode = " + e.keyCode; } //check digit if(e.keyCode >=48 && e.keyCode <=57) { string += " " + e.character + " - keyCode = " + e.keyCode; } if(!string.equals("")) System.out.println (string); } }); shell.open(); while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } display.dispose (); } }