スレッドを使用して JavaFX でデータベースリクエストを行う
JavaFX では、スレッドに関する 2 つの基本的なルールが規定されています。
例外が発生しました
更新しようとしたときに発生した例外が発生しましたJavaFX アプリケーション以外のスレッドからの UI (courseCodeLbl.setText(...)) thread.
スレッド処理を正しく実装する
データベース リクエストが別のスレッドで実行されるようにするには、次の手順に従います。
使用したスレッドの実装JavaFX.concurrent
JavaFX は、バックグラウンド スレッドの管理と更新のために特別に設計された Task クラスを提供します。 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 中国語 Web サイトの他の関連記事を参照してください。