JavaFXアプリケーションから開始するはずのバッチファイルがあります。JavaFX TextBoxにプログラム出力を追加します。
私は異なる実装を試してみました:
は、プロセスが終了し、その後の後、ファイル内のプログラムの出力を追加したファイルを読み、私のテキストボックスにコンテンツを追加します。
これは多くの理由で間違っています。主に、プログラムが終了するまでGUIがハングするためです。
スレッドを使用して調べましたが、スレッドで3210を使用すると、同じことが起こります。 私はプロセスを実行している間にそれをやろうとしましたが、出力内容をtextBoxに追加しました。別のスレッドでこれを行っても、プログラムが終了した後にのみ追加されます。
私はまた、Platform.runLater(new Runnable() ...
を使用しようとしています。 これにより、コンテンツは定期的に更新されますが、一度に大量のデータが残っており、GUIもハングします。
javafx.concurrent.Task
ここにそれのための例があります: https://docs.oracle.com/javase/8/javafx/interoperability-tutorial/concurrency.htm
しかし、それでもまだ、私は」を
私はJavaFXのは、スレッドセーフではなく、ライブラリーがあることがわかりました
:基本的に、私はこのような何かが必要ですが、GUIがハングアップしていない可能どの...私は私が探しています何に近づいていた場合によく分かりません
"Process p"を "InputStream is = p.getInputStream();" –
はい、それは –
でなければなりません。 "while(p.isAlive())"もプロセスが終了してファイルを読み取るのを待つ必要がありますか? –