diff options
Diffstat (limited to 'Week14 Route 66/src/com/camilstaps/route66/KeyHandler.java')
-rw-r--r-- | Week14 Route 66/src/com/camilstaps/route66/KeyHandler.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Week14 Route 66/src/com/camilstaps/route66/KeyHandler.java b/Week14 Route 66/src/com/camilstaps/route66/KeyHandler.java new file mode 100644 index 0000000..eb84b6f --- /dev/null +++ b/Week14 Route 66/src/com/camilstaps/route66/KeyHandler.java @@ -0,0 +1,39 @@ +package com.camilstaps.route66; + +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; + +/** + * Keyboard handler of views for controller. + * + * Pressing keys changes the controller. + * + * @author Pieter Koopman, Camil Staps + */ +public class KeyHandler extends KeyAdapter { + + private final Controller controller; + + public KeyHandler (Controller c) { + controller = c; + } + + /** + * on key down 'q' stop program + * on key down 's' stop the cars + * on key down '<' decrease delay + * on key down '>' increase delay + * on any other key activate the cars + * @param e the key event + */ + @Override + public void keyPressed(KeyEvent e) { + switch (e.getKeyChar()) { + case 'q': System.exit(0); + case 's': controller.stopCars(); break; + case '<': controller.setDelay(controller.getDelay() - 50); break; + case '>': controller.setDelay(controller.getDelay() + 50); break; + default : controller.resumeCars(); + } + } +} |