2016-04-28 8 views
0

Könnte jemand erklären, welcher Zweck EventQueue Objekt in Java Swing dient?Kann jemand erklären, welchen Zweck das EventQueue-Objekt erfüllt?

Ich bin meist verwirrt darüber, wie Warteschlangen-Ereignisse angewendet wird. Vielleicht wäre es hilfreich, eine Ereigniswarteschlange gemeinsam zu verwenden.

+0

* ".. EventQueue-Objekt dient in Java Swing?" * Obwohl Swing es verwendet, stammt die 'EventQueue' von AWT. –

+0

In den meisten Fällen interagieren Sie nicht mit der 'EventQueue'. Die 'EventQueue' ist eine Ereigniswarteschlange, die vom Event Dispatching Thread verarbeitet wird. Diese Ereignisse werden an Komponenten und Interessenten übermittelt, um über Ereignisse wie Mausklicks oder Tastaturereignisse zu informieren. Die 'EventQueue' stellt ein Konzept von" Reihenfolge "bereit, bei dem Ereignisse nur linear nacheinander und im Allgemeinen innerhalb einer zeitlich sequenziellen Reihenfolge auftreten können (so kann mein Tastenanschlag mein Mausereignis nicht setzen, wenn ich zuerst die Maus bewegte)) – MadProgrammer

Antwort

2

Da Swing-single threaded ist, verwendet es die EventQueue Instanzen Runnable zu halten, so dass sie nacheinander versendet werden können und in der um geschrieben, sei es durch das System oder Ihr Programm erzeugt. Die sine qua non Verwendung ist Buchung eines Ereignisses über EventQueue.invokeLater(), die dafür sorgt, dass Swing GUI-Objekte konstruiert und manipuliert werden nur auf der event dispatch thread. Sie können AWT EventQueue durch Ihre eigene Implementierung ersetzen, wie in here gezeigt, um die Ereignisse zu sehen, während sie in die Warteschlange gestellt werden.