com.lightdev.app.shtm
Class FrmMain.RepeatKeyWatcher

java.lang.Object
  extended by com.lightdev.app.shtm.FrmMain.RepeatKeyWatcher
All Implemented Interfaces:
java.awt.event.KeyListener, java.util.EventListener
Enclosing class:
FrmMain

public class FrmMain.RepeatKeyWatcher
extends java.lang.Object
implements java.awt.event.KeyListener

watch for key events that are automatically repeated due to the user holding down a key.

When a key is held down by the user, every keyPressed event is followed by a keyTyped event and a keyReleased event although the key is actually still down. I.e. it can not be determined by a keyReleased event if a key actually is released, which is why this implementation is necessary.


Constructor Summary
FrmMain.RepeatKeyWatcher(long delay)
          construct a RepeatKeyWatcher
 
Method Summary
 boolean isRepeating()
          indicate whether or not a key is being held down
 void keyPressed(java.awt.event.KeyEvent e)
          handle a keyPressed event by cancelling the previous release task (if any) and indicating repeated key press as applicable.
 void keyReleased(java.awt.event.KeyEvent e)
          handle a keyReleased event by scheduling a ReleaseTask.
 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

FrmMain.RepeatKeyWatcher

public FrmMain.RepeatKeyWatcher(long delay)
construct a RepeatKeyWatcher

Parameters:
delay - the delay in milliseconds until a keyReleased event should be handled
Method Detail

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
handle a keyPressed event by cancelling the previous release task (if any) and indicating repeated key press as applicable.

Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
handle a keyReleased event by scheduling a ReleaseTask.

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

isRepeating

public boolean isRepeating()
indicate whether or not a key is being held down

Returns:
true if a key is being held down, false if not