7

Java FX アプリケーションスレッドに問題があります。疑似コードは次のとおりです。

showMenu();
//Contoller which waits for action(pressing button)...
showLoadingPic();
Thread.sleep(2000);
showMap();

問題は、showMenu() で表示されるウィンドウでスリープが発生し、showLoadingPic() がまったく表示されず、最後に showMap() でウィンドウが表示されることです。

showLoadingPic のシーンには、Thread.sleep(2000) と同じ時間である 2 秒間実行されるプログレス バーがあります。

そのため、javafx アプリケーション スレッド ブロック showLoadingPic() および showLoadingPic() がバックグラウンドで実行されているようです。

誰かがこれを修正するのを手伝ってもらえますか??

前もって感謝します!

4

1 に答える 1

16

すべての GUI 関連タスクを処理する Java FX イベント ディスパッチ スレッドがあります。このスレッドのすべての UI コンポーネントを更新する必要があります。Thread.sleepウィンドウがハングし、GUI がフリーズするため、長時間実行されるタスク ( など)はこのスレッドで実行しないでください。

を呼び出して、すべてのコードをアプリケーションのメイン スレッドで実行し、JavaFX スレッドで GUI タスクのみを実行しますPlatform.runLater

このトピックに関する参考文献:

于 2013-11-03T16:22:52.720 に答える