JavaFX arbeiten mit threads und GUI
Ich habe ein problem bei der Arbeit mit JavaFX und Threads. Im Grunde habe ich zwei Möglichkeiten: die Arbeit mit Tasks
oder Platform.runLater
. So wie ich das verstehe Platform.runLater
sollte verwendet werden, um einfache/kurze Aufgaben, und Task
für die längeren. Aber, ich kann nicht alle von Ihnen verwenden.
Wenn ich rufe Thread
es hat, um pop-up eine captcha-dialog in der Mitte des Aufgabe. Während der Verwendung Task
ignoriert meinen Wunsch zu zeigen, neue dialog... Es nicht lassen Sie mich zu erstellen, eine neue Stufe.
Auf der anderen Seite, wenn ich Platform.runLater
es mir erlaubt, einen dialog, jedoch Hauptfenster des Programms einfriert, bis die pop-up-dialog wird gezeigt.
Ich brauche jede Art von Lösung für dieses. Wenn jemand weiß, wie man mit diesem oder hatte ähnliche Erfahrung und eine Lösung gefunden, ich freue mich, von Ihnen zu hören!
InformationsquelleAutor ksarunas | 2013-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als puce sagt, Sie haben zu verwenden
Task
oderService
für die Dinge, die Sie tun müssen, in den hintergrund. UndPlatform.runLater
Dinge zu tun, die in der JavaFX-Application-thread-aus dem hintergrund-thread.Haben Sie, um zu synchronisieren, und einer der Wege, dies zu tun ist mit Hilfe der Klasse
CountDownLatch
.Hier ist ein Beispiel:
InformationsquelleAutor
Verwenden
Worker
(Task
,Service
) von JavaFX-Application-thread-wenn Sie möchten, etwas zu tun, in den hintergrund.http://docs.oracle.com/javafx/2/api/javafx/concurrent/package-summary.html
Verwenden
Platform.runLater
von einem hintergrund-thread, wenn Sie wollen, etwas zu tun, auf dem JavaFX-Application-thread.http://docs.oracle.com/javafx/2/api/javafx/application/Platform.html#runLater%28java.lang.Runnable%29
InformationsquelleAutor