Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen

Java4win

Aktives Mitglied
Hey,
ich habe es bisher so versucht jedoch kommen sich die Threads anscheinend in die Quere.
Oder kann mir jemand erklären, warum dies nicht funktioniert?
Besten dank im Voraus.

Java:
    Label menuTimer = new Label();
        AnchorPane.setTopAnchor(menuTimer, 10.0);
        AnchorPane.setRightAnchor(menuTimer, 10.0);
        topAnchorPane.getChildren().add(menuTimer);
        DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {

            @Override
            public void run() {
                menuTimer.setText(formatter.format(new Date()));
            }
           
        }, 0, 500);

Der Error "Not on FX application thread; currentThread = Timer-0" kommt.
Ich dachte bei Timer wird prinzipiell ein neuer Thread erstellt und ich weiß nicht, was er für ein Problem damit hat...
 

Robat

Top Contributor
Alle GUI Veränderungen müssen im JavaFX Thread geschehen. Versuchs mal mit Platform.runLater(()-> gui code here) ;
 

Java4win

Aktives Mitglied
Alle GUI Veränderungen müssen im JavaFX Thread geschehen. Versuchs mal mit Platform.runLater(()-> gui code here) ;
hey Robat,
jetzt ist zwar die Fehlermeldung weg, jedoch wird die Zeit in der GUI auch nicht aktualisiert und friert ab dem Zeitpunkt ein, wenn die GUI sich öffnet.

Was ist die Begründung von den Entwicklern, dass alle Veränderungen im JavaFX Thread geschehen müssen ?
 

Java4win

Aktives Mitglied
Ich wollte auch einmal einen Button haben welcher sich bewegt.
Java:
    Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            double currentValue = 0;
            @Override
            public void run() {
                currentValue += 0.5;
                AnchorPane.clearConstraints(button);
                AnchorPane.setTopAnchor(button, 10.0);
                AnchorPane.setLeftAnchor(button,currentValue);
            }
           
        }, 0, 3);

und da habe ich doch theoretisch auch durch ein neuen Thread etwas an der GUI verändert und das Ganze hat prima funktioniert.
 

Robat

Top Contributor
Was ist die Begründung von den Entwicklern, dass alle Veränderungen im JavaFX Thread geschehen müssen
Warum es diese EDTs gibt, kannst du nachlesen. Das ist zwar anhand Swing beschrieben, die Begründung lässt sich aber auch auf JavaFX anwenden.

etzt ist zwar die Fehlermeldung weg, jedoch wird die Zeit in der GUI auch nicht aktualisiert und friert ab dem Zeitpunkt ein, wenn die GUI sich öffnet
Kann ich nicht nachvollziehen. Der Code sollte problemlos funktionieren.
Java:
Label lblTimer = new Label();
DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
    @Override
    public void run() {
        Platform.runLater(() -> lblTimer.setText(formatter.format(new Date())));
    }
}, 0, 500);
Solltest du dennoch eine alternative suchen, würde ich dir JavaFX Timeline empfehlen.
Java:
Timeline timeline = new Timeline(
        new KeyFrame(Duration.seconds(1), 
        e -> lblTimer.setText(LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss")))));
timeline.setCycleCount(Animation.INDEFINITE);
timeline.playFromStart();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
S Warum erscheint bei mir "Hallo Welt" und nicht die aktuelle Eingabe? Java Basics - Anfänger-Themen 16
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
V Die die aktuelle Größe zusätzlich in einem Label angezeigt wird Java Basics - Anfänger-Themen 11
M FileWriter Neue Datei wenn aktuelle "zu groß" Java Basics - Anfänger-Themen 3
H Erste Schritte Aktuelle Uhrzeit auslesen Java Basics - Anfänger-Themen 64
F Aktuelle Stunde, Minute usw. auslesen Java Basics - Anfänger-Themen 10
D Erste Schritte Einsteigerfrage - Überblick über aktuelle Java-Technologien Java Basics - Anfänger-Themen 6
J FileOutputStream aktuelle Speicher Pfad ausgeben Java Basics - Anfänger-Themen 13
N aktuelle Datum Mikrosekunden genau bestimmen Java Basics - Anfänger-Themen 8
RySa Input/Output aktuelle größe des BufferedWriters ? Java Basics - Anfänger-Themen 5
M LinkedList aktuelle position Java Basics - Anfänger-Themen 3
D JEditorPane aktuelle Zeile auslesen Java Basics - Anfänger-Themen 4
A Aktuelle Parameter Java Basics - Anfänger-Themen 4
B aktuelle Position einer JTextArea ermitteln Java Basics - Anfänger-Themen 6
G TrayIcon: Wie aktuelle Position des Icons erhalten? Java Basics - Anfänger-Themen 2
S Aktuelle Zeile bekommen Java Basics - Anfänger-Themen 2
G Aktuelle Heap-Größe auslesen? Java Basics - Anfänger-Themen 3
T Aktuelle Datum Java Basics - Anfänger-Themen 4
M Datei ins aktuelle Verzeichnis speichern Java Basics - Anfänger-Themen 5
N ins aktuelle fenster schreiben. Java Basics - Anfänger-Themen 6
N Aktuelle Jahreszahl auslesen? Java Basics - Anfänger-Themen 3
R Woher bekomme ich das aktuelle Jahr oder auch Datum? Java Basics - Anfänger-Themen 4
B Türme von Hanoi: aktuelle Belegungszustände ausgeben? Java Basics - Anfänger-Themen 2
T aktuelle Position in einer Datei Java Basics - Anfänger-Themen 4
R Aktuelle URL herausfinden Java Basics - Anfänger-Themen 5
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
S Wie Rechne ich die Zeit in ...L um? Java Basics - Anfänger-Themen 15
I Zahl aufrunden (Zeit) Java Basics - Anfänger-Themen 43
H Primzahlen finden - Zeit optimieren Java Basics - Anfänger-Themen 34
B Prüfen, ob Zeit Überschreitung Java Basics - Anfänger-Themen 2
I Nächstmögliche Zeit erhalten Java Basics - Anfänger-Themen 11
hello_autumn Zeit messen von ausgeführten Tools. Java Basics - Anfänger-Themen 1
B Nächster möglicher Tag bekommen / Nächste mögliche Zeit bekommen Java Basics - Anfänger-Themen 24
Y Warum aktualisiert die Zeit nicht? Java Basics - Anfänger-Themen 4
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
F actionPerformed() zur richtigen Zeit Java Basics - Anfänger-Themen 6
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
F Zeit in Milli bis Mitternacht Java Basics - Anfänger-Themen 20
M Messandwendung nach Zeit und eigener Eingabe Java Basics - Anfänger-Themen 4
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
N Server Zeit zur lokalen Zeit setzen. Java Basics - Anfänger-Themen 0
K Eine bestimmte Zeit, eine Schleife laufen lassen. Java Basics - Anfänger-Themen 4
N Zeit berechnen, die für eine Strecke benötigt wird Java Basics - Anfänger-Themen 3
S Threads Zu bestimmer Zeit Screenshot erstellen. Java Basics - Anfänger-Themen 2
M Zahlen verändern nach Zeit Java Basics - Anfänger-Themen 6
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
H Methoden Stopwatch misst Zeit einer Methode nicht Java Basics - Anfänger-Themen 8
K Zeit auslesen von Timeserver einen Tag daneben Java Basics - Anfänger-Themen 11
S Zeit messe? Java Basics - Anfänger-Themen 8
L Zeit sekündlich aktualisieren Java Basics - Anfänger-Themen 7
S Zeit bestimmen Java Basics - Anfänger-Themen 4
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
J Aufgabe: Zeit in Sekunden Java Basics - Anfänger-Themen 9
F Einfache Klassen für Datum und Zeit Java Basics - Anfänger-Themen 3
K Zeit ablaufen lassen und nach Ablauf beenden Java Basics - Anfänger-Themen 5
M Zeit von microsekunden auf Format mm:ss Java Basics - Anfänger-Themen 13
G Methoden Zeit Umrechnungsfaktor Java Basics - Anfänger-Themen 2
M Reaktion auf bestimmte Zeit Java Basics - Anfänger-Themen 2
S Animation nach bestimmter Zeit ausführen Java Basics - Anfänger-Themen 3
F hat jmd Zeit mir bisschen zu helfen msn/skype Java Basics - Anfänger-Themen 10
R Kalender speichert keine Zeit Java Basics - Anfänger-Themen 2
F Zeit per Array "zurückdrehen" Java Basics - Anfänger-Themen 5
R Zeit kommt mir zu lange vor... Java Basics - Anfänger-Themen 7
C Ereignis nach einer gewissen Zeit Java Basics - Anfänger-Themen 10
C Falsche Zeit Java Basics - Anfänger-Themen 2
A Unix-Zeit verkürzen Java Basics - Anfänger-Themen 2
Z JScrollPane zeigt Zeit als Datum Java Basics - Anfänger-Themen 5
H Programm zu bestimmten Zeit ausführen Java Basics - Anfänger-Themen 3
R Stoppuhr: Zeit ermitteln und übergeben - Variable static?? Java Basics - Anfänger-Themen 6
G Umrechnung Zeit/Temperatur Java Basics - Anfänger-Themen 6
Luk10 Zeit-Aspekt in Java Java Basics - Anfänger-Themen 3
N zeit ausgeben Java Basics - Anfänger-Themen 5
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
S Dynamisch Zeit auslesen Java Basics - Anfänger-Themen 11
X Fibonacci mit durchschnittlicher Zeit Java Basics - Anfänger-Themen 5
S Kennt jemand die Default-Cache Zeit beim Java-Plugin? Java Basics - Anfänger-Themen 2
M Zeitdauer-Klasse (zeit in java) Java Basics - Anfänger-Themen 9
1 Zeit und Datum der Letzten Bearbeitung einer Datei auslesen Java Basics - Anfänger-Themen 3
L Zeit stoppen in mehreren Threads Java Basics - Anfänger-Themen 2
B JFrame nur eine gewisse Zeit anzeigen Java Basics - Anfänger-Themen 3
R Zeit eingeben über Formular Java Basics - Anfänger-Themen 3
D Kann man die Bios Zeit auslesen? Java Basics - Anfänger-Themen 5
G Zeit-Funktion Java Basics - Anfänger-Themen 4
D Zeit Problem! Java Basics - Anfänger-Themen 8
M Zeit zurückgeben je sekunde Java Basics - Anfänger-Themen 8
F Zeit stoppen Java Basics - Anfänger-Themen 6
C Zeitberechnungen wieviel Zeit vergangen ist. Java Basics - Anfänger-Themen 4
J System Zeit Java Basics - Anfänger-Themen 3
D Zeit messen Java Basics - Anfänger-Themen 7
M Faktor Zeit in Java! Gibt es sowas? Java Basics - Anfänger-Themen 6
H Reaktion nach gewisser Zeit Java Basics - Anfänger-Themen 20
S Zeit berechnen Java Basics - Anfänger-Themen 6
C Zeit horchen! Java Basics - Anfänger-Themen 3
G Programm soll nach bestimmter Zeit etwas tun Java Basics - Anfänger-Themen 24
P Zeit - Thread bei Simulationen Java Basics - Anfänger-Themen 4
H TicTacToe: Zeit zwischen Zügen lassen Java Basics - Anfänger-Themen 9
C Zeit Schleife Java Basics - Anfänger-Themen 5
S Zeit messen! Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben