new ActionEvent(textArea,
new ActionEvent(evt.getSource(),
	public void keyPressed(KeyEvent evt)	{		int keyCode = evt.getKeyCode();		int modifiers = evt.getModifiers();		if((modifiers & ~KeyEvent.SHIFT_MASK) != 0			|| evt.isActionKey()			|| keyCode == KeyEvent.VK_BACK_SPACE			|| keyCode == KeyEvent.VK_DELETE			|| keyCode == KeyEvent.VK_ENTER			|| keyCode == KeyEvent.VK_TAB)		{			KeyStroke keyStroke = KeyStroke.getKeyStroke(keyCode,				modifiers);			Object o = currentBindings.get(keyStroke);			if(o == null)			{				// Don't beep if the user presses some				// key we don't know about unless a				// prefix is active. Otherwise it will				// beep when caps lock is pressed, etc.				if(currentBindings != bindings)					textArea.getToolkit().beep();				currentBindings = bindings;				evt.consume();				return;			}			else if(o instanceof ActionListener)			{				((ActionListener)o).actionPerformed(					new ActionEvent(textArea,					ActionEvent.ACTION_PERFORMED,					null,modifiers));				currentBindings = bindings;				evt.consume();				return;			}			else if(o instanceof Hashtable)			{				currentBindings = (Hashtable)o;				evt.consume();				return;			}			else if(keyCode != KeyEvent.VK_ALT				&& keyCode != KeyEvent.VK_CONTROL				&& keyCode != KeyEvent.VK_SHIFT				&& keyCode != KeyEvent.VK_META)			{				return;			}		}	}