Отображение всплывающего меню для пункта меню - PullRequest
1 голос
/ 12 февраля 2010

Моя проблема в этом

Я хочу показать всплывающее меню для пункта меню в Java, этого я легко могу достичь,

но когда я показываю всплывающее меню, родительское меню очищается,

поведение, которое я хочу, это родительское меню, которое также должно отображаться при отображении всплывающего меню

Ответы [ 2 ]

0 голосов
/ 03 сентября 2010

Могу ли я сначала спросить "почему"? Это кажется очень необычным, а значит, плохим юзабилити. Есть веская причина, почему вы не видите этого ни в одном приложении основного потока. Если вы хотите подменю, используйте подменю, как образец trashgod.

Вы можете добавить PopupMenuListener во всплывающее меню вашего родительского меню, разбить на popupMenuWillBecomeInvisible и посмотреть стек вызовов. В JDK6 это происходит от BasicMenuItemUI#doClick вызова MenuSelectionManager#clearSelectedPath.

Так что, если у вас действительно есть веская причина удивить пользователя, предоставьте свой собственный элемент меню.

0 голосов
/ 13 февраля 2010

Я смотрю на две демонстрации, PopupMenuDemo и GraphPanel, и я не вижу никакой очистки. PopupMenuDemo показывает иерархическое подменю, а GraphPanel показывает иерархическое контекстное меню. У вас есть пример, в котором «родительское меню очищается».

Приложение: Вот что я вижу для PopupMenuDemo. Ни одна из демонстраций не вызывает setVisible() в меню.

alt text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...