javafx - 在另一个类方法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),并在屏幕上显示新场景。似乎我这样做的方式是不可能的,我很好奇在这种事情上有什么好的做法。
解决方案
它的作品。例如,只需尝试简单地调用
ObjectB.anotherFunction(primaryStage);
在你之后或之前
primaryStage.show();
方法。你的问题是你检查这个“如果”一次,甚至在显示这个阶段之前它在开始时是错误的,然后,当它实现时 - 这段代码已经通过了。ObjectB.anotherFunction(primaryStage);
当你的 if 设置为 true 时,你只需要运行。
PS。并且请从一个小写字母开始变量的名称,objectB 而不是 ObjectB - 它只是一个 Java 命名约定。
推荐阅读
- reactjs - React.js 上的 no-undef 问题
- javascript - 我正在尝试解决的初学者 Javascript 函数问题
- javascript - 故事书 6 - 如何设置对象数组?
- python - Dropbox python api oauth2 实现
- c# - 我可以复制已删除的游戏对象吗
- docker - 为什么我从 ocelot 得到不同的状态码?
- r - 根据站点合并两个数据集,然后在 R 中合并最近的时间
- python - pyqt5:一些小部件在我的标签中消失了
- python-3.8 - `os.listdir` 为 `~` 抛出 Error2
- c# - 使用 C# 取消在 ASP.NET MVC 中的线程上运行的任务