Как сделать mouseEvent из Компонента для распознавания в подкомпоненте? - PullRequest
0 голосов
/ 23 декабря 2009

У меня есть JTabPane, и я добавил к нему MoustListener (для заголовка вкладки). Когда я нажимаю правую кнопку мыши, появляется всплывающее меню. Мне нужно сделать его невидимым, когда я нажимаю кнопку мыши в любом месте окна. как я могу это сделать??

(MouseListener применяется только для заголовка вкладки.)

Ответы [ 3 ]

1 голос
/ 24 декабря 2009

мне нужно сделать его невидимым, когда я нажмите кнопку мыши в любом месте окно. как я могу это сделать ??

Это стандартное поведение JPopupMenu, поэтому вам не нужно делать ничего особенного.

Прочтите API JPopupMenu, и вы найдете ссылку на учебник по Swing «Как пользоваться меню». Учебник содержит рабочий пример использования всплывающего меню. Сравните ваш код с учебником, чтобы увидеть, что отличается. Мы не можем вам помочь, потому что мы не знаем, на что похож ваш код.

Если вам нужна дополнительная помощь, опубликуйте свой SSCCE .

0 голосов
/ 23 декабря 2009

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

0 голосов
/ 23 декабря 2009

В старые добрые времена я решил зарегистрировать слушателя мыши на ВСЕХ компонентах. Вы можете написать довольно простую функцию, которая рекурсивно обходит контейнер верхнего уровня и делает это.

это было с Java 1.1, так что, возможно, сегодня есть лучший вариант.

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