JavaFX我可以重新绘制舞台吗?

时间:2013-03-06 22:16:24

标签: javafx-2 javafx

enter image description here通过键盘在程序中放入一些值后,舞台启动了,但同时我想让舞台打开,用户可以再次放置一些值并重新启动舞台。

这可能吗?

我想做这样的事情:

     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;
        }
    });

1 个答案:

答案 0 :(得分:2)

这是用户和应用程序之间交互的错误设计。

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

将在JFX线程上运行,当您在命令行中与用户交谈时,UI将被冻结。

您可以通过comandline在一个单独的线程中与用户交谈,该线程可以使用runLater()调用来通知JFX,关于新用户输入。

因此,您可以在start方法中创建一个单独的线程,然后放入

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

在其runnable中调用。

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

通常情况下,您不需要强制JavaFX重绘任何内容。它将自己完成所有事情