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,有关新的用户输入。

所以,你可以在 start 方法中创建一个单独的线程,然后把

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

调用它的可运行文件。

当用户输入重绘 UI 所需的新信息时,调用 runLater()。

在一般情况下,您不需要强制 JavaFX 重绘任何内容。它会自己做所有事情

于 2013-03-07T16:04:19.300 回答