Computer Science 252
Problem Solving with Java

Spring 2014, The College of Saint Rose

HandlingArrowKeys Demo

A working demo of HandlingArrowKeys will appear below. Click inside the applet to interact with it.

HandlingArrowKeys BlueJ Project

Click here to download a BlueJ project for HandlingArrowKeys.

HandlingArrowKeys Source Code

The Java source code for HandlingArrowKeys is below. Click on a file name to download it.

import objectdraw.*;
// some new imports for our key events
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

 * Example HandlingArrowKeys.  Example to show how to set up to handle
 * arrow key press/release events.  Note that similar techniques can be
 * used to check other keys.
 * Jim Teresco, Siena College, CSIS 120, Spring 2012
 * Updated for The College of Saint Rose, CSC 252, Fall 2013
 * $Id: 2221 2013-10-22 02:48:35Z terescoj $

public class HandlingArrowKeys extends WindowController implements KeyListener {

    // text objects to help demonstrate which arrow key
    // is currently and was most recently pressed
    private Text currentPress;
    private Text mostRecentPress;
    // is a key currently down?
    private boolean keyDown;
    public void begin() {
        currentPress = new Text("No arrow keys pressed yet", 10, 100, canvas);
        mostRecentPress = new Text("No arrow keys pressed yet", 10, 200, canvas);
        keyDown = false;

        // Get ready to handle the arrow keys
    // Required by KeyListener interface, but not used here.
    public void keyTyped(KeyEvent e) { }
    // Remember that the key is no longer down.
    public void keyReleased(KeyEvent e) {
        keyDown = false;
        currentPress.setText("No arrow keys currently pressed.");
     * Handle the arrow key press.
     * @param e the KeyEvent to determine direction
    public void keyPressed(KeyEvent e) {
        if (!keyDown) {
            if (e.getKeyCode() == KeyEvent.VK_UP) {
                currentPress.setText("Up arrow key currently pressed.");
                mostRecentPress.setText("Up arrow key most recently pressed.");
            } else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
                currentPress.setText("Down arrow key currently pressed.");
                mostRecentPress.setText("Down arrow key most recently pressed.");
            } else if (e.getKeyCode() == KeyEvent.VK_LEFT ) {
                currentPress.setText("Left arrow key currently pressed.");
                mostRecentPress.setText("Left arrow key most recently pressed.");
            } else if (e.getKeyCode() == KeyEvent.VK_RIGHT ) {
                currentPress.setText("Right arrow key currently pressed.");
                mostRecentPress.setText("Right arrow key most recently pressed.");
        keyDown = true;