Comparison of Java KeyEvent - arg0 equal to a specific key

I created a new KeyListener defined as follows:

...
public void keyTyped(KeyEvent arg0) {
    if (arg0.equals(KeyEvent.VK_ENTER) || (arg0.equals(KeyEvent.VK_R))) {
        System.out.println("Enter or R key typed.");
        } else {
        System.out.println("Something else typed.");
    }
}
...

What I really want to do is call the method every time I enter the Enter or "R" key.

My problem: no matter what I type, the if case never fails. He always skips to another case. What is the reason for this behavior?

+3
source share
2 answers

KeyEvent.xxx, getKeyCode, int, capture keyPressed keyReleased - KeyEvent.xxx. keyTyped, getKeyChar, (, -) - , :

public void keyReleased(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_R) {
        System.out.println("Enter or R key typed.");
    } else {
        System.out.println("Something else typed.");
    }
}
+4

KeyTyped , JTextField JTextArea, keyPressed. , .

+3

All Articles