You are here

JavaFX 2.0 Oberfläche aktualisiert nicht mehr

Ein nerviges Problem - sobald ein längerdauernder Prozess läuft, wird die Oberfläche einer JavaFX 2.0 Applikation nicht mehr aktualisiert. Eine fortlaufende Ausgabe friert ein, ein Fortschrittsbalken bleibt stehen... Und ist der Prozess beendet, dann springt der ProgressBar auf 100% und alle Textausgaben schwirren vorbei.

Die Lösung:
Längerdauernde Prozesse lassen wir in einem separaten Service laufen. Dann geht's gleich besser...

...
//Die längerdauernde Funktion...
   UpdateCache();
...

Läuft sie direkt im aktuellen Ablauf, so friert die UI beinahe ein.
Lassen wir sie als Service laufen. Dazu erzeugen wir eine Service-Klasse:

    public static class CacheService extends Service {

        protected Task createTask() {
            return new Task() {

                protected String call() {
                    UpdateCache();
                    return null;
                }
            };
        }
    }

Der Aufruf erfolgt durch Starten des Services:

...
//Die längerdauernde Funktion blockiert nun nicht mehr die Oberfläche...
   new CacheService().start();
...