0

ここに画像の説明を入力キーボードでプログラムにいくつかの値を入力すると、ステージが開始されましたが、同時にステージを開きたいと思います。ユーザーは再びいくつかの値を入力してステージを再開できます。

それは可能ですか?

私はこのようなことをしたいと思います:

     primaryStage.setScene(scene);
    primaryStage.show();

    javafx.application.Platform.runLater(new Runnable() {
        public void run() {
            if (TastaturEingabe.readBoolean("Möchten Sie ein neues Diagramm zeichnen?")) {

                // Input through keyboard
                readInputJahrgang(vintage, FIRST_PROMPT);
                readInputLager(vintage, FIRST_PROMPT);
                primaryStage.hide();
            } else {
                primaryStage.close();
            }
            return;
        }
    });
4

1 に答える 1

2

これは、ユーザーとアプリケーション間の対話の設計が間違っています。

javafx.application.Platform.runLater(new Runnable() {
    public void run() {

JFXスレッドで実行され、コマンドラインでユーザーと話している間、UIはフリーズします.

別のスレッドでコマンドラインを介してユーザーと対話できます。このスレッドは、runLater() 呼び出しを使用して、新しいユーザー入力について JFX に通知できます。

したがって、開始メソッドで別のスレッドを作成して、

readInputJahrgang(vintage, FIRST_PROMPT);
readInputLager(vintage, FIRST_PROMPT);

そのランナブルを呼び出します。

ユーザーが UI を再描画するために必要な新しい情報を入力したら、runLater() を呼び出します。

通常、JavaFX に何かを強制的に再描画させる必要はありません。それはそれ自体ですべてを行います

于 2013-03-07T16:04:19.300 に答える