Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.eonz.games.e2945;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.util.ArrayList;
- import javax.swing.JApplet;
- public class KeyboardManager implements KeyListener {
- private static class KeyState {
- private boolean state = false;
- public final int keyCode;
- public KeyState(int keyCode) {
- this.keyCode = keyCode;
- }
- public void setState(boolean state) {
- this.state = state;
- }
- public boolean getState() {
- return state;
- }
- }
- private final JApplet applet;
- private final ArrayList<KeyState> states;
- public KeyboardManager(JApplet applet) {
- this.applet = applet;
- this.applet.addKeyListener(this);
- states = new ArrayList<KeyState>();
- }
- public void monitor(int keyCode) {
- states.add(new KeyState(keyCode));
- }
- public boolean getState(int keyCode) {
- for (KeyState s : states.toArray(new KeyState[0])) {
- if (s.keyCode == keyCode) {
- return s.getState();
- }
- }
- monitor(keyCode);
- System.out.println("[Warning] You should register key codes before you check for them. A monitor has been added. ( Key code: " + keyCode + " )");
- return false;
- }
- @Override
- public void keyPressed(KeyEvent e) {
- for (KeyState s : states.toArray(new KeyState[0])) {
- if (s.keyCode == e.getKeyCode()) {
- s.setState(true);
- }
- }
- }
- @Override
- public void keyReleased(KeyEvent e) {
- for (KeyState s : states.toArray(new KeyState[0])) {
- if (s.keyCode == e.getKeyCode()) {
- s.setState(false);
- }
- }
- }
- @Override
- public void keyTyped(KeyEvent e) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement