private static void dispatchEvent(int eventCode, Key key, int keyCode, Component component) { int modifier = key.getModifier().getCode(); KeyEvent event = new KeyEvent(component, eventCode, 0, modifier, keyCode, key.getChar()); for (KeyListener listener : component.getKeyListeners()) { switch (eventCode) { case KEY_PRESSED: listener.keyPressed(event); break; case KEY_TYPED: listener.keyTyped(event); break; case KEY_RELEASED: listener.keyReleased(event); break; } } SwingUtilities.processKeyBindings(event); }