Кнопка остается «нажатой», если прикреплено событие мыши - PullRequest
0 голосов
/ 23 января 2011

Я создал приложение Swing GUI, и все работает довольно хорошо, за исключением небольшой детали: у меня есть два буфера, и к каждому из них прикреплено событие щелчка мышью.Проблема в том, что когда я нажимаю на них, они остаются «нажатыми»: все остальное работает нормально, но странно видеть эти две кнопки ... может быть, я использовал неправильное событие?или я должен установить их в «депрессию» вручную?

1 Ответ

2 голосов
/ 25 января 2011

«Ответы из комментариев» в стиле CW.

Не следует добавлять MouseListeners в JButtons, но вместо этого следует использовать ActionListeners или Action объекты.Это предпочтительный метод, и обычно он проще, если он охватывает требуемое поведение.

Обязательно распространяйте событие (вызывайте обработчики событий по умолчанию).«Остается в депрессии» потому, что событие проглатывается и не распространяется в том виде, в котором оно должно быть.

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

Должно быть выброшенное исключение, которое не позволяет EDT завершить обновление кнопки.Это довольно типично.

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