public void setPressed(boolean b) {
      if ((isPressed() == b) || !isEnabled()) {
        return;
      }

      if (b == false && isArmed()) {

        if (this.isSelected()) {
          if (label.isUnderline()) {
            label.setUnderline(false);
            setSelected(false);
          } else {
            label.setUnderline(true);
          }

        } else {
          setSelected(true);
        }
      }

      if (b) {
        stateMask |= PRESSED;
      } else {
        stateMask &= ~PRESSED;
      }

      fireStateChanged();

      if (!isPressed() && isArmed()) {
        int modifiers = 0;
        AWTEvent currentEvent = EventQueue.getCurrentEvent();
        if (currentEvent instanceof InputEvent) {
          modifiers = ((InputEvent) currentEvent).getModifiers();
        } else if (currentEvent instanceof ActionEvent) {
          modifiers = ((ActionEvent) currentEvent).getModifiers();
        }
        fireActionPerformed(
            new ActionEvent(
                this,
                ActionEvent.ACTION_PERFORMED,
                getActionCommand(),
                EventQueue.getMostRecentEventTime(),
                modifiers));
      }
    }