


Threading für Datenbankanforderungen implementieren
Sie stoßen auf eine Ausnahme, weil Sie über einen separaten Thread auf die JavaFX-Benutzeroberfläche zugreifen. So können Sie Threading korrekt implementieren:
Allgemeine Prinzipien des Threadings in JavaFX
- Regel 1:Jede Änderung oder jeder Zugriff auf das Szenendiagramm muss am durchgeführt werden der FX-Anwendungsthread.
- Regel 2:Lang laufende Vorgänge sollten ausgeführt werden Nicht-FX-Anwendungsthreads.
Implementierung mithilfe von Threads
Erstellen Sie einen Thread und starten Sie die Datenbankanforderung darauf:
Thread t = new Thread(new Runnable() { public void run() { requestCourseName(); } }, "Thread A"); t.start();
Verwenden der JavaFX Concurrent API
Die javafx.concurrent-API bietet eine praktische Möglichkeit, Hintergrundthreads zu verwalten und zu aktualisieren Benutzeroberfläche.
- Aufgabe: Kapseln Sie den Hintergrundvorgang.
- Hintergrundaufgaben-Thread: Führt die call()-Methode der Aufgabe im Hintergrund aus Thread.
- FX-Anwendungsthread: Aktualisiert die Benutzeroberfläche nach Abschluss über ein Ereignis Handler, die für Task registriert sind.
Beispiel für die Verwendung von WidgetDAO und Task
// DAO encapsulates database access public class WidgetDAO { public List<widget> getWidgetsByType(String type) { ... } } // Controller handles UI operations public class MyController { private WidgetDAO widgetAccessor; private Executor exec; public void searchWidgets() { String searchString = widgetTypeSearchField.getText(); Task<list>> widgetSearchTask = new Task() { @Override protected List<widget> call() throws Exception { return widgetAccessor.getWidgetsByType(searchString); } }; widgetSearchTask.setOnSucceeded(e -> widgetTable.getItems().setAll(widgetSearchTask.getValue())); exec.execute(widgetSearchTask); } }</widget></list></widget>
Beispiel für die Verwendung von MyDAO und Task
// DAO encapsulates database access public class MyDAO { public Course getCourseByCode(int code) { ... } } // Controller handles UI operations public class MyController { private MyDAO myDAO; private Executor exec; public void searchCourse() { int courseCode = Integer.valueOf(courseId.getText()); Task<course> courseTask = new Task() { @Override protected Course call() throws Exception { return myDAO.getCourseByCode(courseCode); } }; courseTask.setOnSucceeded(e -> { Course course = courseTask.getValue(); courseCodeLbl.setText(course.getName()); }); exec.execute(courseTask); } }</course>
Durch die korrekte Implementierung des Threadings stellen Sie sicher, dass Langfristige Datenbankanforderungen blockieren den UI-Thread nicht, was zu einer reaktionsfähigen Benutzeroberfläche führt.
Das obige ist der detaillierte Inhalt vonWie implementiert man Threading für Datenbankanforderungen in JavaFX ordnungsgemäß, um eine Blockierung der Benutzeroberfläche zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)