The variable keyCode is used to detect special keys such as the UP, DOWN, LEFT, RIGHT arrow keys and ALT, CONTROL, SHIFT.

When checking for these keys, it can be useful to first check if the key is coded. This is done with the conditional if (key == CODED), as shown in the example above.

The keys included in the ASCII specification (BACKSPACE, TAB, ENTER, RETURN, ESC, and DELETE) do not require checking to see if the key is coded; for those keys, you should simply use the key variable directly (and not keyCode). If you're making cross-platform projects, note that the ENTER key is commonly used on PCs and Unix, while the RETURN key is used on Macs. Make sure your program will work on all platforms by checking for both ENTER and RETURN.

For those familiar with Java, the values for UP and DOWN are simply shorter versions of Java's KeyEvent.VK_UP and KeyEvent.VK_DOWN. Other keyCode values can be found in the Java KeyEvent reference.

There are issues with how keyCode behaves across different renderers and operating systems. Watch out for unexpected behavior as you switch renderers and operating systems, and also whenever you are using keys not mentioned in this reference entry.

If you are using P2D or P3D as your renderer, use the NEWT KeyEvent constants.


  • color fillVal = color(126);
    void draw() {
      rect(25, 25, 50, 50);
    void keyPressed() {
      if (key == CODED) {
        if (keyCode == UP) {
          fillVal = 255;
        } else if (keyCode == DOWN) {
          fillVal = 0;
      } else {
        fillVal = 126;