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

Тема в разделе "Java", создана пользователем savl, 20 фев 2012.

Статус темы:
Закрыта.
  1. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Утро, день, ночь...

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

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Тема закрыта, обошел данный момент с невидимым JDialog'ом, который выступает родителем.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей