@Override
    protected void processFocusEvent(FocusEvent e) {
      super.processFocusEvent(e);
      if (isShowing()) {
        getCaret().setVisible(true); // we want to keep it blinking even if the focus is lost
        // (never happens in practice, though, as the field isn't focusable, so this is just a precaution)
      }
    }
@Override
    protected void processFocusEvent(FocusEvent e)