Como faço para verificar se o usuário está pressionando uma tecla?

Em java eu ​​tenho um programa que precisa verificar continuamente se um usuário está pressionando uma tecla. Então, em psuedocode, algo como

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

Desde já, obrigado!

No java você não verifica se uma tecla é pressionada, em vez disso você ouve KeyEvent s. O caminho certo para alcançar seu objective é registrar um KeyEventDispatcher e implementá-lo para manter o estado da chave desejada:

 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; } } }); } } 

Então você sempre pode usar:

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

Você pode, obviamente, usar o mesmo método para implementar o isPressing("") com um mapa de chaves e seu estado dentro do IsKeyPressed .

Tente isto:

 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()); } 

Você tem que implementar o KeyListener , dê uma olhada aqui: http://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyListener.html

Mais detalhes sobre como usá-lo: http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html