Скрыть Jpopupmenu При Потере Фокуса

  • Автор темы Автор темы savl
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

savl

Green Team
28.10.2011
2 659
320
Утро, день, ночь...

Ситуация такая: вызываю я popupmenu по координатам курсора, то есть без JFrame/JButton/JWindow и т.д.

C++:
	 Point location = MouseInfo.getPointerInfo().getLocation();
Menu.setLocation((int) location.getX()-5, (int) location.getY()-5);
Menu.setInvoker(Menu);
Menu.setVisible(true);

И все бы хорошо, но есть основная и большая проблема: Если я кликаю вне меню, на рабочем столе, на панели задач и так далее, то меню не скрывается. Только если что-то из него выбираю. Если бы родительский компонент был, то скорее всего все работало бы прекрасно, но его нет :(
Я пробовал проверять координаты курсора "в квадрате" меню, но безуспешно. События "слушателя" фокуса и событий мыши, так же особого результата не дали.

Слушатель фокуса. как я почитал вообще не будет работать, если нет "родителя".
А со слушателями мыши: не работает только это "popupMenuCanceled", остальное прекрасно и во время. Можете рассказать поподробнее про это событие?

Покопал инет, насколько хватило сил и знаний английского языка. Наткнулся на такую же проблему при работе с иконкой в трее, но решения не нашел. Слышал, что проблема решается как аналогичная: при клике мыши вне java приложения меню не скрывается; но есть предположение, что ее решают определением фокуса главного окна, а вот у меня как раз окна и нет...

В целом: буду рад советам, любой помощи и идеям... сижу уже вторую неделю с этим, а сделать надо...
JDK 7.0 у меня, юзаю Eclipse, ОС Windows 7 (32b). Не знаю важна ли операционка...

P.S. И да, с java я знаком 18 дней всего, поэтому многого не знаю :)
 
Тема закрыта, обошел данный момент с невидимым JDialog'ом, который выступает родителем.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab