![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Всем Привет!
Вот есть у меня код:
........... Боже мой! что я только не делал, что бы заставить элемент меню реагировать на щелчок мыши! Pressed и Released события выполняются, а Cliked нет. Не понимаю.... Помогите разобрться. |
|||
|
||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
"Повесь" на JMenuItem ActionListener
Здесь, скорее всего, внутренние "заморочки" JMenuItem: для него click - сигнал к "сворачиванию". А вот JMenu на экране присутствует постоянно, и на MouseClicked реагирует адекватно. -------------------- Хотите поговорить об этом? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
igon прав, это связанно с тонкостями работы JMenuItem.
Если в JMenuItem запретить обработку события mouseReleased, то событие mouseClicked начнет срабатывать, но при этом меню не будет пропадать с экрана.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Гм. Может, я не так понял, но можно про всякие листенеры вообще забыть:
По-моему, так удобнее. И Экшены можно в отдельный пакет запихать все, и из разных мест их вызывать, не тольок из меню. |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Спасибо за ответы. Анализирую.....
|
|||
|
||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Увы, нельзя: события Java - это не только события типа Action. Предложенный тобой вариант не позволит отследить, например, отдельный mousePressed для MouseEvent. -------------------- Хотите поговорить об этом? |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
||||
|
||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
mousePressed - это поскольку прозвучало в исходном вопросе. ОК, тогда так: Предложенный тобой вариант не позволит отследить любые события не-Action типа. Оно нам надо? -------------------- Хотите поговорить об этом? |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Ну ладно, ладно. А можно, все-таки, живой пример, когда
? Мне интересно, какие же еще события МенюИтема столь жизненно необходимы программисту на Яве, главными преимуществами которой, на мой взгляд, являются простота и почти что чистота с точки зрения ООП? Ради чего стоит усложнять связи и отказываться от столь замечательной штуки, как Action? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Господа! Давайте не будем углубляться в рассуждения о нужности или не нужности тех или иных событий меню.
Автору вопроса был предложен вариант решения проблемы, если он его не устроит будем думать дальше.
Реализация нестандартных меню, например я видел меню в которых были поля ввода, комбобоксы и спинеры. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Еще раз благодарю за ответы. Я еще раз все пересмотрел и пришел к выводу, что раз уж mouse cliked не хочет работать как мне угодно, то буду использовать mouse released. Он и меню скрывает и код заставит выполниться.
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |