我有我的类,其中包含 start 方法来启动 javaFX 的 primaryStage。

但是,我有另一个名为 change_screen(int n) 的函数,它将根据传递给它的数字创建一个新场景并为该新场景执行 primaryStage.setScene() 和 .show() 。

唯一的问题是在 start 函数中声明了 primaryStage,因此我无法在 change_screen() 函数中访问它。

我将如何解决这个问题?我已经阅读了整本 java 教科书,所以我对大多数概念都有所了解,但它并没有深入了解 javaFx,因此我不知道如何处理多个场景。

我有一个游戏,根据他们正在查看的菜单,屏幕会有所不同,那么什么是相当容易地改变场景的最佳方式?如果可能的话,我想使用 primaryStage,因为它已经实例化了,如果我相信我理解 javaFX,如果创建了一个已知的阶段,这是一个新窗口,对吗?

如果我的方法是错误的,那么在同一个窗口中更改多个场景的正确方法是什么?

最佳答案

你不能在外面声明一个变量并将在 start 方法中创建的阶段分配给它吗?

public class YourClass extends Application
{
    private Stage stage;

    @Override
    public void start(Stage primaryStage)
    {
        this.stage = primaryStage;
    }

    public void change_screen(int n)
    {
        stage.setScene(otherScene)
    }
}

关于inheritance - JavaFX如何在start()之外的函数中访问primaryStage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34553455/

10-12 14:51