protected void processKeyEvent ( KeyEvent e )
   {
   switch ( e.getID() )
      {
      case KeyEvent.KEY_PRESSED:
         switch ( e.getKeyChar() )
            {
            case KeyEvent.CHAR_UNDEFINED:
               nonUnicodeKeyPressed( e );
               break;
            case KeyEvent.VK_ENTER:
            case KeyEvent.VK_TAB:
            case KeyEvent.VK_BACK_SPACE:
            case KeyEvent.VK_DELETE:
               unicodeControlKeyPressed( e );
               break;
            default:
               unicodeKeyPressed( e );
               break;
            } // end inner switch getKeyChar
         break;
      case KeyEvent.KEY_RELEASED:
      case KeyEvent.KEY_TYPED:
      default:
         break;
      } // end outer switch getID()
   if ( !e.isConsumed() ) super.processKeyEvent(e);
   } // end processKeyEvent