Verwenden von Threads zum Erstellen von Datenbankanforderungen mit JavaFX
JavaFX schreibt zwei grundlegende Regeln für Threads vor:
Ausnahme aufgetreten
Die Ausnahme, auf die Sie gestoßen sind, ist auf den Aktualisierungsversuch zurückzuführen die Benutzeroberfläche (courseCodeLbl.setText(...)) aus einem anderen Thread als der JavaFX-Anwendung Thread.
Threading korrekt implementieren
Um sicherzustellen, dass Datenbankanforderungen in einem separaten Thread ausgeführt werden, führen Sie die folgenden Schritte aus:
Implementieren von Threading mit JavaFX.concurrent
JavaFX stellt die Task-Klasse bereit, die speziell für die Verwaltung von Hintergrundthreads und die Aktualisierung entwickelt wurde UI.
Beispielimplementierung
Task<Course> courseTask = new Task<Course>() { @Override public Course call() throws Exception { return myDAO.getCourseByCode(courseCode); } }; courseTask.setOnSucceeded(e -> { Course course = courseTask.getCourse(); if (course != null) { courseCodeLbl.setText(course.getName()); } }); exec.execute(courseTask);
In diesem Beispiel wird der Datenbankzugriff in einer Aufgabe durchgeführt und das UI-Update wird im JavaFX-Anwendungsthread mithilfe von geplant setOnSucceeded-Handler. Wenn Sie diese Richtlinien befolgen, können Sie Threads effektiv nutzen, um Datenbankanforderungen zu optimieren und gleichzeitig die Reaktionsfähigkeit der Benutzeroberfläche in JavaFX-Anwendungen aufrechtzuerhalten.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich die JavaFX-Benutzeroberfläche sicher aus Hintergrund-Datenbank-Threads?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!