public SimpleKeyController() { super(); robot = RobotInfo.getRobot(); robot.connect(); wheels = robot.requestResource(WheelsController.class, this); drawableFrame = new DrawableFrame() { private static final long serialVersionUID = 1L; @Override public void dispose() { super.dispose(); robot.freeResource(wheels, this); Phybots.getInstance().dispose(); } public void paint2D(Graphics2D g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(getForeground()); g.drawString("Status: " + wheels.getStatus().toString(), 10, 20); } }; drawableFrame.setFrameSize(320, 240); drawableFrame.addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_UP: case KeyEvent.VK_KP_UP: goForward(); break; case KeyEvent.VK_LEFT: case KeyEvent.VK_KP_LEFT: spinLeft(); break; case KeyEvent.VK_RIGHT: case KeyEvent.VK_KP_RIGHT: spinRight(); break; case KeyEvent.VK_DOWN: case KeyEvent.VK_KP_DOWN: goBackward(); break; case KeyEvent.VK_ESCAPE: default: stop(); break; } drawableFrame.repaint(); } }); }