Добавить «неактивный» слушатель мыши - PullRequest
3 голосов
/ 08 января 2012

Мистер Корбель был мертв, Большое спасибо

У меня есть слушатель мыши на JPanel, и он работает правильно. Я пытаюсь добавить поддержку опрокидывания для JLabel, но когда я добавляю слушателя мыши в JLabel, слушатель мыши JPanel перестает получать события, когда слушатель мыши метки получает события.

Я просто хочу добавить прослушиватель мыши к JLabel, не блокируя прослушиватель мыши JPanel под ним. Спасибо.

Проблема с бонусом ! Я хотел бы сделать getComponentAt(Point p) и получить компонент на дне, не самый верх, какие-либо предложения? У меня есть обходной путь для этого, поэтому эта часть не важна, но мне не нравятся обходные пути. Еще раз спасибо.

Ответы [ 2 ]

3 голосов
/ 08 января 2012

пожалуйста, ваш JLabel перемещаемый / перетаскиваемый, в других случаях ваш вопрос не делает меня реальным смыслом, потому что самые глубокие JComponenet в иерархии принимают Focus / MouseListeners по умолчанию, в любом случае посмотрите на SwingUtilities есть методы могут вернуть относительные координаты родителю

2 голосов
/ 08 января 2012

, но когда я добавляю слушателя мыши в JLabel, слушатель мыши JPanel прекращает получать события, когда слушатель мыши метки получает события.

Да, именно так работает обработка событий мыши,Только первый компонент, у которого есть слушатель, получит событие.Было бы не очень эффективно продолжать передавать событие вверх по иерархии компонентов каждому компоненту.

Я просто хочу добавить слушатель мыши в JLabel, не блокируя прослушиватель мыши в JPanel под ним..

Вы можете обработать это в прослушивателе мыши, прикрепленном к метке, а затем повторно передать событие на родительскую панель.Проверьте dispatchEvent(...) класса Component в API для получения дополнительной информации.

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