で複数のタスクのためにPlatform.runLaterを呼び出すと、私はそれに接続されているいくつかの方法があり、すべてのこれらのメソッドを呼び出します JavaFXアプリケーション
DFF
Lookup
Profile
Everything
よう
Everything
すべてのメソッドを呼び出し、すべてのもののような一つの方法があるJavaFXアプリケーションを持っています私はこれらのメソッドを呼び出すEverything
メソッドのスレッディングを実装しようとしていて、List
がpopuplatedされた後、タブペインを使用してテーブルビューで表示するために別のfxmlにコントロールを転送します。
私はFXMLビューをロードし、手段になるように新しいFXMLとUIのプログレスバーがループが遅れていないだろうしながら、すべてのスレッドが実行を終了した後、1回のみPlatform.runLater
メソッドを呼び出す必要があります。 が、私はそこに、スレッド同期エラーであると私はそれについて知らない最後のタスク内に配置した場合、私のPlatform.runLater
コード
Platform.runLater(new Runnable() {
@Override public void run() {
try {
Parent parent = FXMLLoader.load(getClass().getResource("AolRun.fxml"));
SmartCC.fxmlval.add("AOLScreen.fxml");
SmartCC.stageval.add((Stage) run.getScene().getWindow());
Stage stage = new Stage();
stage.initStyle(StageStyle.UTILITY);
stage = (Stage) run.getScene().getWindow();
Scene scene = new Scene(parent);
stage.setScene(scene);
scene.getStylesheets().add("/css/Style.css");
stage.setTitle("AOL Output ");
stage.setResizable(false);
stage.show();
} catch (IOException ex) {
Logger.getLogger(AOLScreenController.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
を配置する場所を知りません。
スレッドとjavafxスレッドにはとても新しいです。
このファビアンにお伺いして申し訳ありませんが、これらのタスクのそれぞれで成功ハンドラメソッドを追加する必要があります。ここでplatform.runlaterメソッドを使用する –
@RahulSingh 'Task'は' onSuceeded'ハンドラコードがJavaFXアプリケーションスレッド上で実行されることを確認します。これは 'Platform.runLater'を使用して達成したものです。さらに、すべてのタスクにこれを追加して、最後のタスクがいつ終了するかを知る必要があります(AFAIKこれはステージ作成のコードを呼び出すときです)。 – fabian
ありがとうございますが、ここで問題となるのは1つの問題ですが、10回中9回は動作しますが、時には印刷時にタスクが滞っていて前進するようなときにスレッド同期の問題が発生することがあります。 –