首页 > 解决方案 > 在另一个类方法JavaFX中改变场景

问题描述

我是 JavaFX 的新手。我正在尝试在我的第一个项目中改变场景,我想知道我是否可以这样做:

public class A {
        ...
    public void start(Stage primaryStage) throws Exception {
            ...
        B ObjectB = new B();
        Scene scene = new Scene();
        primaryStage.setScene(scene);
            ...
        if (...) {
            ObjectB.anotherFunction(primaryStage);
        }
        primaryStage.show();
    }
}

public class B {
        ...
    public void anotherFunction(Stage stage) {
            ...
        Scene NewScene = new Scene();
        stage.setScene(NewScene);
        stage.show();
    }
}

上面的代码是我写的缩短版本。我想从一个类中更改场景,就像另一个类(B)中的菜单类(A),并在屏幕上显示新场景。似乎我这样做的方式是不可能的,我很好奇在这种事情上有什么好的做法。

标签: javafxscenestage

解决方案


它的作品。例如,只需尝试简单地调用

  ObjectB.anotherFunction(primaryStage);

在你之后或之前

primaryStage.show();

方法。你的问题是你检查这个“如果”一次,甚至在显示这个阶段之前它在开始时是错误的,然后,当它实现时 - 这段代码已经通过了。ObjectB.anotherFunction(primaryStage);当你的 if 设置为 true 时,你只需要运行。

PS。并且请从一个小写字母开始变量的名称,objectB 而不是 ObjectB - 它只是一个 Java 命名约定。


推荐阅读