Это что-то очень специфическое, и я не знаю, много ли людей делают это.:) В любом случае, я оставляю решение для этого на случай, если кому-то это понадобится.
Прежде всего важно отметить, что эти изменения сделаны в классах пользовательского интерфейса.И BasicMenuItemUI, и BasicMenuUI имеют внутренний класс Handler, который заботится о событиях мыши.Внутренний класс Handler в BasicMenuUI расширяет внутренний класс Handler в BasicMenuItemUI, и потому что они закрытые и анонимные (соответственно), трудно изменить код.Но в обоих случаях есть защищенный обработчик, который указывает на обработчики, о которых я говорил в предыдущем абзаце.
Итак, в качестве решения я расширил эти защищенные обработчики в своих собственных реализациях MyOwnBasicMenuUI и MyOwnBasicMenuItemUI и применил свойсобственное поведение.Теперь у меня есть JMenu, который открывается только тогда, когда пользователь щелкает по нему, и остается открытым, пока пользователь не щелкнет где-то еще.Если кто-то хочет получить более подробную информацию, я могу предоставить их.
Спасибо