Может ли кто-нибудь объяснить, для чего служит объект EventQueue?

Может ли кто-нибудь объяснить, для чего объект EventQueue служит в Java Swing?

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


person wayne    schedule 28.04.2016    source источник
comment
..EventQueue объект обслуживается в Java Swing? Хотя Swing использует его, EventQueue взят из AWT.   -  person Andrew Thompson    schedule 28.04.2016
comment
В большинстве случаев вы не взаимодействуете с EventQueue. EventQueue — это очередь событий, которая обрабатывается потоком диспетчеризации событий. Эти события доставляются компонентам и заинтересованным сторонам, чтобы уведомить о чем-то происходящем, например, о щелчке мыши или событии клавиатуры. EventQueue обеспечивает концепцию порядка, при котором события могут происходить только линейным образом, одно за другим и, как правило, в упорядоченном по времени порядке (поэтому мое нажатие клавиши не может поставить на кон событие моей мыши, если я сначала переместил мышь)   -  person MadProgrammer    schedule 28.04.2016


Ответы (1)


Поскольку Swing является однопоточным, он использует EventQueue для хранения экземпляров Runnable, чтобы их можно было отправлять последовательно и в заказ размещен, созданный системой или вашей программой. Использование sine qua non заключается в публикации события через EventQueue.invokeLater(), что гарантирует, что объекты Swing GUI создаются и управляются только в поток отправки событий. Вы можете заменить AWT EventQueue своей собственной реализацией, как показано здесь, чтобы видеть события по мере их размещения в очереди. .

person trashgod    schedule 28.04.2016