Во всяком случае контролировать порядок событий огня в Swing - PullRequest
3 голосов
/ 12 мая 2011

В любом случае я могу контролировать порядок запуска событий в моем приложении Swing?Например, у меня есть MouseListener и ActionListener для компонента.Можно ли сделать так, чтобы MouseListener всегда срабатывал до ActionListener?

Мне кажется, если я добавлю MouseListener перед ActionListner, я просто молюсь, чтобы они запускались в таком порядке.

ТеперьЯ понимаю, что кодирование таким способом является плохой практикой и что вы не должны рассчитывать на порядок запуска событий, но для этой ситуации, с которой я сталкиваюсь, это необходимо.

Спасибо

Ответы [ 2 ]

4 голосов
/ 12 мая 2011

Если у вас есть действие, инициированное одним слушателем, которое должно произойти раньше другого, измените свою логику.

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

1 голос
/ 12 мая 2011

Оберните код ActionListener в SwingUtilities.invokeLater (...). Код будет добавлен в конец EDT.

Я бы все равно имел обоих слушателей в одном классе, поэтому зависимость хорошо документирована.

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