code: public void mouseReleased (MouseEvent event)
      {
          if (_activeItem == null) {
              long when = RunAnywhere.getWhen(event);
              if (!_msMode && (when < _poptime + DRAGMODE_DELAY)) {
                  // if the dragmode delay time hasn't passed, then we're going to leave the menu up
                  // because the user wants it to behave like a MS Windows menu.
                  _msMode = true;
                  return;
  
              // if they've double clicked, then activate the default item
              } else if (_msMode && (when < _poptime + DOUBLECLICK_DELAY)) {
                  _activeItem = _defaultItem;
              }
          }
  
          // deactivate the active item and post a command for it
          if (_activeItem != null) {
              // only process the selection if the item is enabled
              if (!_activeItem.isEnabled(this)) {
                  return;
              }
  
              // if the item has an overriding argument, use that
              if (_activeItem.command != null) {
                  Object itemArg = _activeItem.argument;
                  Object arg = (itemArg == null) ? _argument : itemArg;
  
                  // notify our listeners that the action is posted
                  final CommandEvent evt = new CommandEvent(
                      _host.getComponent(), _activeItem.command, arg);
                  _actlist.apply(new ObserverList.ObserverOp<ActionListener>() {
                      public boolean apply (ActionListener obs) {
                          obs.actionPerformed(evt);
                          return true;
                      }
                  });
              }
  
              _activeItem.setActive(false);
              _activeItem = null;
          }
  
          // deactive ourselves
          deactivate();
      }
docs: documentation inherited