code: protected boolean isTypeableTarget (Component target)
      {
          return target.isShowing() &&
              (((target instanceof JTextComponent) && ((JTextComponent) target).isEditable()) ||
               (target instanceof JComboBox) ||
               (target instanceof JTable) ||
               (target instanceof JRootPane));
      }
docs: Returns true if the specified target component supports being typed into, and thus we
  shouldn't steal focus away from it if the user starts typing.