Wie überprüfe ich, ob der Benutzer eine Taste drückt?

In Java habe ich ein Programm, das ständig prüfen muss, ob ein Benutzer eine Taste drückt. Also in Pseudo-Code, etwas ähnliches

if (isPressing("w")) { //do somthing } 

Danke im Voraus!

In Java überprüfen Sie nicht, ob eine Taste gedrückt wurde, stattdessen hören Sie KeyEvent s. Der richtige Weg, um Ihr Ziel zu erreichen, besteht darin, einen KeyEventDispatcher zu registrieren und ihn zu implementieren, um den Status des gewünschten Schlüssels beizubehalten:

 import java.awt.KeyEventDispatcher; import java.awt.KeyboardFocusManager; import java.awt.event.KeyEvent; public class IsKeyPressed { private static volatile boolean wPressed = false; public static boolean isWPressed() { synchronized (IsKeyPressed.class) { return wPressed; } } public static void main(String[] args) { KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { @Override public boolean dispatchKeyEvent(KeyEvent ke) { synchronized (IsKeyPressed.class) { switch (ke.getID()) { case KeyEvent.KEY_PRESSED: if (ke.getKeyCode() == KeyEvent.VK_W) { wPressed = true; } break; case KeyEvent.KEY_RELEASED: if (ke.getKeyCode() == KeyEvent.VK_W) { wPressed = false; } break; } return false; } } }); } } 

Dann können Sie immer verwenden:

 if (IsKeyPressed.isWPressed()) { // do your thing. } 

Sie können natürlich dieselbe Methode verwenden, um isPressing("") mit einer Zuordnung von Schlüsseln und ihrem Status zu implementieren, der in isPressing("") eingepackt ist.

Versuche dies:

 import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JTextField; public class Main { public static void main(String[] argv) throws Exception { JTextField textField = new JTextField(); textField.addKeyListener(new Keychecker()); JFrame jframe = new JFrame(); jframe.add(textField); jframe.setSize(400, 350); jframe.setVisible(true); } class Keychecker extends KeyAdapter { @Override public void keyPressed(KeyEvent event) { char ch = event.getKeyChar(); System.out.println(event.getKeyChar()); } 

Sie müssen KeyListener implementieren, schauen Sie hier: http://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyListener.html

Weitere Informationen zur Verwendung: http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html