if(c >= 0x20 && c != 0x7f) { KeyStroke keyStroke = KeyStroke.getKeyStroke( Character.toUpperCase(c)); Object o = currentBindings.get(keyStroke);
currentBindings = (Hashtable)o; return; } else if(o instanceof EditAction) { currentBindings = bindings; executeAction((EditAction)o, evt.getSource(), String.valueOf(c)); return; }
	public void keyTyped(KeyEvent evt)	{		int modifiers = evt.getModifiers();		char c = evt.getKeyChar();		if(c != KeyEvent.CHAR_UNDEFINED &&			(modifiers & KeyEvent.ALT_MASK) == 0)		{			if(c >= 0x20 && c != 0x7f)			{				KeyStroke keyStroke = KeyStroke.getKeyStroke(					Character.toUpperCase(c));				Object o = currentBindings.get(keyStroke);				if(o instanceof Hashtable)				{					currentBindings = (Hashtable)o;					evt.consume();					return;				}				else if(o instanceof EditAction)				{					currentBindings = bindings;					executeAction((EditAction)o,						evt.getSource(),						String.valueOf(c));					evt.consume();					return;				}				currentBindings = bindings;				executeAction(inputAction,evt.getSource(),					String.valueOf(evt.getKeyChar()));				evt.consume();			}		}	}