java - 在我的第一个场景加载后,如何在我的第二个场景中使用 getUserData()?
问题描述
我的程序有两个场景,firstScene.fxml
每个场景secondScene.fxml
都有对应的 Controller 类FirstController.java
和SecondController.java
.
在使用按钮的onAction事件和 FXMLLoader将 StagegetUserData()
加载到 FirstController 类之后,我希望能够在我的 SecondController 类上使用 Stage 。
这是我在 SecondController 类上的代码片段:
@FXML
public void initialize() throws IOException {
Stage window = (Stage) statusLabel.getScene().getWindow();
statusLabel.setText("" + window.getUserData());
}
getUserData()
基于setUserData(message)
我的 FirstController 类,其中的值message
是一个字符串。
然而,这会输出一个错误:
Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.Scene.getWindow()" because the return value of "javafx.scene.control.Label.getScene()" is null
在我的 FirstController 类加载后,我如何getUserData()
在 SecondController 类上使用它?
解决方案
您的所有 GUI 代码都应使用通用模型。如果您这样做,则控制器无需相互交谈,因为它们都可以访问通用模型。谷歌或 MVVM 可以找到一些关于任何 GUI 编程的这个重要方面的教程。
推荐阅读
- react-native - 当应用程序打开时,React Native Firebase 推送通知不起作用
- java - 如何对 CompletableFuture 任务执行转换
- bash - 是 for 循环还是 printf 序列更适合创建 n 个字符的字符串?
- postgresql - Postgresql - 查询 json 对象内的数组
- postgresql - 无法将 struct 元素分配为 Google/uuid 数据类型
- javascript - Kubernetes Nginx Ingress 处理 JavaScript 重定向
- sql - 从 JSON 数组字段中查找和/或删除某些元素的 PostgreSQL 查询
- c - 函数参数是相对于 rbp 的负偏移量(据我所知,它们应该是正偏移量)
- java - 使用 Eclipse Java Neon 重新加载工作区失败
- php - 透视 mysql 结果集并创建 html 表/矩阵