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)); } }