Java EventQueue. Когда я должен рассмотреть возможность его использования?
В настоящее время я смотрю на класс EventQueue на веб-сайте Oracle: http://download.oracle.com/javase/1.4.2/docs/api/java/awt/EventQueue.html Но я не уверен, когда мне следует используй это? Должен ли я использовать его, если в моем классе есть слушатели для двух или более событий?
3 ответа
Обычно вам не нужно отправлять какие-либо события в EventQueue, все это происходит "автоматически", когда пользователь выполняет свои действия (например, щелчки мыши и т. Д.) Или когда система считает, что ваше окно необходимо перекрасить.
Единственные два метода, которые я использую регулярно EventQueue.invokeLater
а также EventQueue.invokeAndWait()
(менее часто). Используйте один из них, если вы выполняете какое-либо действие за пределами EDT (потока отправки событий), а затем хотите внести некоторые изменения в графический интерфейс (например, добавить или удалить компонент в / из контейнера), поскольку такие действия должны выполняться только на EDT.
Я никогда не использовал его за 14 лет программирования на Java.
AWT использует их, чтобы позаботиться о вашем графическом интерфейсе. Обычно вы не будете использовать их, если вы не создаете какой-либо графический движок поверх AWT. Как сказал Пауло, есть этот важный метод invokeLater
но обычно вы можете достичь того же эффекта, используя SwingUtilities.invokeLater
этот способ, кажется, используется гораздо чаще.