【问题标题】:Changing scene in another class method JavaFX在另一个类方法JavaFX中改变场景
【发布时间】:2018-12-14 22:16:14
【问题描述】:

我是 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),并在屏幕上显示新场景。似乎我这样做的方式是不可能的,我很好奇在这种事情上有什么好的做法。

【问题讨论】:

  • 您的 if 条件是否在程序开始时为“真”?
  • 一开始是假的,后来是真的。我希望我的程序首先显示场景,然后是 NewScene

标签: javafx scene stage


【解决方案1】:

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

  ObjectB.anotherFunction(primaryStage);

在你之前或之后

primaryStage.show();

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2023-04-11
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多