How do I check if the user is pressing a key?

In java I have a program that needs to check continuously if a user is pressing a key.
So In psuedocode, somthing like

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

Thanks in advance!

3
Leave a Reply

avatar
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Jason Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Jason
Guest

In java you don’t check if a key is pressed, instead you listen to KeyEvents. The right way to achieve your goal is to register a KeyEventDispatcher, and implement it to maintain the state of the desired key: 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;… Read more »

Jason
Guest

Try this:

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

}

Jason
Guest