event-dispatch-thread

___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ qstntxt ___

In dem Buch, das ich gerade lese, hat jedes GUI-Beispiel mit Multithreading so etwas:

%Vor%

(ich meine EventQueue). Aber wird der Code nicht automatisch im Hauptthread (EDT) ausgeführt?

    
___ tag123multithreading ___ Multi-Threading ist die Fähigkeit eines Computers oder eines Programms, Arbeit gleichzeitig oder asynchron auszuführen, indem mehrere gleichzeitige Ausführungsströme (im Allgemeinen als Threads bezeichnet) verwendet werden. ___ answer5781067 ___

Der Haupt-Thread ist nicht der gleiche wie der EDT. Wenn Sie %code% hinzufügen, sehen Sie, dass %code% innerhalb von %code% und %code% ausgegeben wird, wenn Sie sich innerhalb der %code% -Methode von %code% befinden.

Hier ist eine Diskussion der Geschichte der single-threaded Regel in Swing , die helfen könnte, die Dinge klarer zu machen.

    
___ qstnhdr ___ Java EventQueue. Warum sollte alles in invokelater Methode sein? ___ tag123swing ___ Swing ist das wichtigste Toolkit für Benutzeroberflächen in Java und wird mit dem Standard-Java-SDK ausgeliefert. Es ist im Paket javax.swing enthalten. ___ answer5781090 ___

Desktop-GUI-Anwendungen funktionieren normalerweise auf diese Weise. Es gibt einen Thread für gui und einen oder mehrere Threads für den Rest der Anwendung. Mit %code% geben Sie an, was der GUI-Thread von anderen Threads tun soll.

    
___ ___ tag123eventdispatchthread Der Ereignis-Zuteilungs-Thread oder EDT, ist ein spezieller Hintergrund-Thread, die Ereignisse aus der Ereigniswarteschlange Java GUI verarbeitet. Swing und Android haben verschiedene Implementierungen, aber sie sind im Konzept ähnlich. ___
2
Antworten

Verwendung von JavaFX Platform.runLater und Zugriff auf UI von einem anderen Thread

Ich habe ein paar Fragen zu Platform.runLater . Ich habe eine JavaFX-Anwendungsklasse. In dieser Klasse führe ich einen Thread aus (Der Thread liest Daten von einem Netzwerk-Socket). Wenn ich jetzt ein neues Stage innerhalb des Threads a...
01.03.2013, 14:43
2
Antworten

Swing - Etikett aktualisieren

Ich habe ein Nachrichtenlabel und eine Senden-Schaltfläche. Die Senden-Schaltfläche wird mehrmals gedrückt, und die Aktion für die einzelnen Druckvorgänge kann bis zu einer Minute dauern. Wenn die Taste gedrückt wird, möchte ich die Nachricht...
18.01.2012, 20:10
5
Antworten

Wie übertrage ich Ergebnisse von EDT zurück zu einem anderen Thread?

Ich habe den folgenden Anwendungsfall: Ich habe Code in Thread A (nicht EDT) ausgeführt. Dann möchte ich dem Benutzer eine Frage stellen, aber das muss auf dem EDT geschehen, da es Swing-Code beinhaltet (Öffnen eines Dialogs usw.). Schließlic...
20.11.2012, 03:38
4
Antworten

Wie benutzt du den Event Dispatch Thread?

Ich habe gelernt, dass Swing nicht threadsicher ist. Wenn ich genauer hinsehe, habe ich festgestellt, dass jede Änderung an einer Swing-Komponente im Event-Dispatch-Thread durchgeführt werden muss, um verschiedene Probleme im Zusammenhang mit Mu...
25.10.2011, 22:37
1
Antwort

JavaFx-Antwort auf SwingUtilities.invokeLater

Ich bin mir also bewusst, dass die JavaFx-Methode zur Aktualisierung der GUI bei der Verwendung eines Threads Task genannt wird, aber der Code funktioniert in ähnlicher Weise oder gibt es Unterschiede. Lassen Sie mich Ihnen ein Beispiel geben:...
20.10.2012, 00:55
2
Antworten

InvokeLater-Bestellung mit Ereignissen

Der EventQueue javadoc gibt an, dass in Reihenfolge eingereihte Ereignisse sequenziell und in der Reihenfolge ausgelöst werden müssen. Stimmt es, dass Runnable s, die mit EventQueue.invokeLater in eine Warteschlange eingereiht wurden...
25.01.2013, 17:19
8
Antworten

Wie man den Spielstatus angesichts der EDT verwaltet?

Ich entwickle einen Echtzeit-Strategiespiel-Klon auf der Java-Plattform und ich habe einige konzeptionelle Fragen darüber, wo ich den Spielstatus einstellen und verwalten soll. Das Spiel verwendet Swing / Java2D als Rendering. In der aktuellen E...
11.06.2009, 15:46
2
Antworten

Java EventQueue. Warum sollte alles in invokelater Methode sein?

In dem Buch, das ich gerade lese, hat jedes GUI-Beispiel mit Multithreading so etwas: %Vor% (ich meine EventQueue). Aber wird der Code nicht automatisch im Hauptthread (EDT) ausgeführt?     
25.04.2011, 17:14