ホームページ >Java >&#&チュートリアル >UIスレッドをブロックせずにJavaFXでデータベースリクエストを安全に実行するにはどうすればよいですか?
JavaFX では、2 つの重要なルールがスレッド化を制御します。
コードでは例外が明らかになります。バックグラウンド スレッド (Runnable で作成された新しい Thread) から courseCodeLbl ラベル (UI 操作) を変更しようとしています。これはルール 1 に違反しています。
これを解決するには、バックグラウンド スレッドでデータベース リクエストを実行し、JavaFX アプリケーション スレッドで UI を更新する必要があります。これは、次の手順を使用して実現できます。
JavaFX は、同時実行性を管理し、バックグラウンド スレッドからの UI 更新を処理するための javafx.concurrent API を提供します。 Task はこの API の基本クラスであり、次のことが可能になります。
推奨される設計パターンに従って、データベース アクセスは データ アクセス オブジェクト (DAO) にカプセル化する必要があります。 クラス。UI を認識しません。次に、タスクを使用して、バックグラウンド スレッドで DAO のメソッドを呼び出すことができます。
タイプ別にウィジェットを取得する DAO の例を次に示します。
そして、以下を使用するコントローラー クラス実行する タスク と javafx.concurrent.Executorデータベース操作と UI の更新:
データベース アクセスをカプセル化し、JavaFX の同時実行 API を活用することで、UI の応答性を維持しながら、データベース リクエストを別のスレッドで実行できます。
以上がUIスレッドをブロックせずにJavaFXでデータベースリクエストを安全に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。