diff --git a/src/main/java/org/academiadecodigo/simplegraphics/keyboard/Keyboard.java b/src/main/java/org/academiadecodigo/simplegraphics/keyboard/Keyboard.java index b52cd70..433632b 100644 --- a/src/main/java/org/academiadecodigo/simplegraphics/keyboard/Keyboard.java +++ b/src/main/java/org/academiadecodigo/simplegraphics/keyboard/Keyboard.java @@ -7,6 +7,9 @@ import java.util.List; import java.util.Iterator; +import static org.academiadecodigo.simplegraphics.keyboard.KeyboardEventType.KEY_PRESSED; +import static org.academiadecodigo.simplegraphics.keyboard.KeyboardEventType.KEY_RELEASED; + /** * Instantiate a Keyboard for obtaining key handling capability */ @@ -35,6 +38,33 @@ public void addEventListener(KeyboardEvent keyboardEvent) { keyboardEventArrayList.add(keyboardEvent); } + /** + * Add a new Keyboard event listener + * @see KeyboardEvent + * @param key the associated key code + * @see KeyboardEventType + * @param type the event to add + */ + public void addEventListener(int key, KeyboardEventType type) { + KeyboardEvent e = new KeyboardEvent(); + e.setKey(key); + e.setKeyboardEventType(type); + addEventListener(e); + } + + /** + * Add Keyboard event listeners to a group of keys + * @see KeyboardEvent + * @param keys the key codes + * @see KeyboardEventType + * @param type the event to add + */ + public void addEventListeners(int[] keys, KeyboardEventType type) { + for (int key : keys) { + addEventListener(key, type); + } + } + /** * Remove an existing Keyboard event listener * @param keyboardEvent the event to remove diff --git a/src/test/java/org/academiadecodigo/simplegraphics/test/Tester.java b/src/test/java/org/academiadecodigo/simplegraphics/test/Tester.java index 56eb146..e957861 100644 --- a/src/test/java/org/academiadecodigo/simplegraphics/test/Tester.java +++ b/src/test/java/org/academiadecodigo/simplegraphics/test/Tester.java @@ -27,6 +27,9 @@ public void test() throws InterruptedException { event.setKeyboardEventType(KeyboardEventType.KEY_PRESSED); k.addEventListener(event); + k.addEventListener(KeyboardEvent.KEY_ENTER, KeyboardEventType.KEY_PRESSED); + k.addEventListeners(new int[]{KeyboardEvent.KEY_ESC, KeyboardEvent.KEY_Q}, KeyboardEventType.KEY_PRESSED); + Mouse m = new Mouse(this); Rectangle rect = new Rectangle(10, 10, 400, 400); @@ -75,7 +78,20 @@ public void test() throws InterruptedException { @Override public void keyPressed(KeyboardEvent e) { - System.out.println("SPACE KEY PRESSED"); + switch (e.getKey()){ + case KeyboardEvent.KEY_SPACE: + System.out.println("SPACE KEY PRESSED"); + break; + case KeyboardEvent.KEY_ENTER: + System.out.println("ENTER WAS PRESSED"); + break; + case KeyboardEvent.KEY_ESC: + System.out.println("ESC WAS PRESSED"); + break; + case KeyboardEvent.KEY_Q: + System.out.println("Q WAS PRESSED"); + break; + } }