gizmoball.gui
Class MagicKeyListener

java.lang.Object
  extended by gizmoball.gui.MagicKeyListener
All Implemented Interfaces:
java.awt.event.KeyListener, java.util.EventListener

public class MagicKeyListener
extends java.lang.Object
implements java.awt.event.KeyListener

A MagicKeyListener is decorator for a KeyListener.

This class adds three pieces of functionality. First, it delays key events (moving them to the back of the event queue). Second, it maintains state so that when a press-and-release event pair is sitting in the queue, neither event is propogated to the adaptee (decoratee). Finally, it can (optionally) add to the semantics so that any release event implies that any still-pressed keys have also been released.

Together, these additions may provide more meaningful semantics of key listening in an environment where a key being held down generates repeated key events, or where multiple keys pressed generate a release event for only one of them.


Constructor Summary
MagicKeyListener(java.awt.event.KeyListener adaptee)
           
MagicKeyListener(java.awt.event.KeyListener adaptee, boolean assumeAllReleased)
           
 
Method Summary
 void keyPressed(java.awt.event.KeyEvent e)
           
 void keyReleased(java.awt.event.KeyEvent e)
           
 void keyTyped(java.awt.event.KeyEvent e)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MagicKeyListener

public MagicKeyListener(java.awt.event.KeyListener adaptee)

MagicKeyListener

public MagicKeyListener(java.awt.event.KeyListener adaptee,
                        boolean assumeAllReleased)
Parameters:
assumeAllReleased - enables the third option listed in the class overview, namely that any key release event implies that all keys have been released.
Method Detail

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Specified by:
keyReleased in interface java.awt.event.KeyListener

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Specified by:
keyTyped in interface java.awt.event.KeyListener