Heim >Java >javaLernprogramm >JavaFX „Platform.runLater' vs. „Task': Wann sollte man welches für GUI-Updates verwenden?
Platform.runLater und Task in JavaFX: Verwendungszweck und Unterschiede
JavaFX bietet zwei Mechanismen zum Ausführen von Aufgaben im GUI-Thread: Platform.runLater und Task. Wenn Sie wissen, wann die einzelnen Elemente verwendet werden sollten, können Sie die Reaktionsfähigkeit der Benutzeroberfläche und die Lesbarkeit des Codes erheblich verbessern.
Platform.runLater
Verwenden Sie Platform.runLater für schnelle und einfache Vorgänge, die keine großen Berechnungen erfordern oder die Fertigstellung dauert lange. Beispiele hierfür sind:
Task
Verwenden Sie Task für komplexere und zeitaufwändigere Vorgänge. Diese Klasse bietet zusätzliche Funktionen, wie zum Beispiel:
Goldene Regel für Verwendung
Die allgemeine Richtlinie besteht darin, Platform.runLater zum Aktualisieren der GUI aus Nicht-GUI-Threads zu verwenden. Verwenden Sie Task, wenn Sie Folgendes benötigen:
GUI Threading
Sowohl Platform.runLater als auch Task erstellen Arbeitsthreads, die getrennt vom Haupt-GUI-Thread ausgeführt werden. Dadurch können Sie die GUI sicher über Hintergrundthreads aktualisieren, ohne auf Parallelitätsprobleme zu stoßen.
Beispiel: Lange Berechnungen
Stellen Sie sich ein Szenario vor, in dem Sie eine lange Berechnung durchführen möchten und Aktualisieren Sie einen Fortschrittsbalken in der GUI. Die Verwendung von Platform.runLater würde die Ereigniswarteschlange mit zahlreichen kleinen Aufgaben überfluten und die GUI verlangsamen. Verwenden Sie stattdessen Task, um die Berechnung in einem separaten Thread durchzuführen und den Fortschritt bei Bedarf an die GUI zurückzumelden:
Task<Void> task = new Task<>() { @Override public Void call() { for (int i = 0; i < 100000; i++) { updateProgress(i, 100000); } return null; } }; bar.progressProperty().bind(task.progressProperty()); new Thread(task).start();
In diesem Fall ist bar ein Fortschrittsbalken in der GUI, der als Berechnung aktualisiert wird schreitet voran.
Das obige ist der detaillierte Inhalt vonJavaFX „Platform.runLater' vs. „Task': Wann sollte man welches für GUI-Updates verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!