使用執行緒透過JavaFX 發出資料庫請求
JavaFX 規定了關於執行緒的兩個基本規則:
遇到異常
您遇到的異常源於嘗試更新來自JavaFX 應用程式之外的線程的UI (courseCodeLbl.setText(.. .))正確實作執行緒
要確保資料庫要求在單獨的執行緒中執行,請按照下列步驟操作:使用 JavaFX.concurrent 實作執行緒
JavaFX 提供了專門用於管理後台執行緒和更新UI。範例實作
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);在此範例中,資料庫存取是在任務中執行的,UI 更新安排在任務上使用setOnSucceeded 處理程序的JavaFX 應用程式執行緒。透過遵循這些準則,您可以有效地使用執行緒來最佳化資料庫請求,同時保持 JavaFX 應用程式中的 UI 回應能力。
以上是如何從後台資料庫線程安全地更新 JavaFX UI?的詳細內容。更多資訊請關注PHP中文網其他相關文章!