在另一个 class JavaFX 方法中更改场景

Changing scene in another class method 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();
    }
}

上面的代码是我写的代码的简化版本。 我想将场景从一个 class 更改为另一个 class (B) 中的菜单 class (A),并在屏幕上显示新场景。以我的方式似乎是不可能的,我很好奇在那种事情上有什么好的做法。

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

  ObjectB.anotherFunction(primaryStage);

在你的

之后或之前
primaryStage.show();

方法。你这里的问题是你检查了这个 "if" 一次,甚至在显示这个阶段之前,它在开始时是假的,然后,当它变为真时 - 这段代码已经通过了。你只需要 运行 ObjectB.anotherFunction(primaryStage);,当你的 if 条件设置为真时。

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