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

Статус
Закрыто для дальнейших ответов.

savl

Lotus team
28.10.2011
2 136
105
#1
Утро, день, ночь...

Ситуация такая: вызываю я 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 дней всего, поэтому многого не знаю :)
 

savl

Lotus team
28.10.2011
2 136
105
#2
Тема закрыта, обошел данный момент с невидимым JDialog'ом, который выступает родителем.
 
Статус
Закрыто для дальнейших ответов.