gpt4 book ai didi

inheritance - JavaFX 如何在 start() 之外的函数中访问 primaryStage

转载 作者:行者123 更新时间:2023-12-01 13:47:47 25 4
gpt4 key购买 nike

我的类中有 start 方法,用于启动 javaFX 的 primaryStage。

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

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

我该如何解决这个问题?我读过整本 java 教科书,所以我了解大多数概念,但它并没有深入到 javaFx,所以我不知道如何处理多个场景。

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

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

最佳答案

难道不能在外面声明一个变量,然后把start方法中创建的stage赋值给它吗?

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com