当前位置: 首页 > 知识库问答 >
问题:

在第一个场景加载之后,如何在第二个场景中使用getUserData()?[重复]

赫连昕
2023-03-14

我的程序有两个场景,firstScene。fxml和第二场景。fxml,每个都有相应的控制器类FirstController。java和SecondController。java

我希望能够使用Stage的getUserData()在我的秒控制器类上,在它使用Button的onAction事件和FXMLLoader加载到FirstController类之后。

这是我在秒控制器类上的代码片段:

    @FXML
    public void initialize() throws IOException {
        Stage window = (Stage) statusLabel.getScene().getWindow();
        statusLabel.setText("" + window.getUserData());
    }

getUserData()基于我的第一个控制器类上的setUserData(message),其中message的值是一个字符串。

然而,这会输出一个错误:

Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.Scene.getWindow()" because the return value of "javafx.scene.control.Label.getScene()" is null

然后,在第一个控制器类加载第二个控制器类之后,如何在其上使用getUserData()

共有1个答案

翟淮晨
2023-03-14

所有的GUI代码都应该使用一个通用模型。如果这样做的话,控制器就没有必要相互交谈,因为它们都可以访问公共模型。谷歌vor MVVM可以找到一些关于任何GUI编程的这一重要方面的教程。

 类似资料:
  • 下面的代码完整展示了通过three.js引擎创建的一个三维场景,在场景中绘制并渲染了一个立方体的效果,为了大家更好的宏观了解three.js引擎, 尽量使用了一段短小但完整的代码实现一个实际的三维效果图。 学习建议 刚一开始学习,不需要完全看懂下面的代码,能够修改增删部分代码就可以,随着时间的推移就能够很好的使用三维引擎three.js。 本课程风格和大多数课程风格不同,注意一定要结合案例代码学习

  • 问题内容: 我有一个使用javafx Scene来渲染某些东西的应用程序,并且我想将该渲染结果放入我在Javafx中创建的某些GUI中。我该怎么做? 基本上,有一些容器可以放入场景,然后将其放入GUI。 抱歉,如果是新手问题,我是JavaFX的新手 问题答案: 该场景只有一个顶级父节点作为根。您可以获取它并放入另一个场景。

  • 接口说明 将数据整合到一个地方进行查询,Wish3DEarth团队新增了添加场景的接口,来进行数据的整合操作 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/scene/1.0.0/add 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 title string form 是 场景名称 descrip

  • 概念 jMonkeyEngine3是一个基于场景图的3D游戏引擎,因此有必要对场景图的概念进行一些说明。jME3的场景图通过Spatial、Geometry、Node这3个类来实现,它们之间的关系如下图: 场景图(Scene Graph)是一种数据结构,用于管理游戏场景中的物体,场景中的每个物体都被称为Spatial。 Spatial表示3D空间中的一个物体,它在空间中有三种线性变换:位移(Tra

  • 我用的是Three。js创建100个立方体的动画。对于每个立方体,我设置其几何体和材质,然后使用:scene将其添加到场景中。添加(多维数据集);我一直将立方体的位置存储在三个数组中:cube_x[99]cube_y[99]cube_z[99] 我不知道如何在修改渲染器时告诉它们的位置。当场景中只有一个立方体时,以下方法适用于一个立方体: 立方体位置。x=300;cube.position.y=0

  • 我需要这段java代码的帮助。我有三个场景登录场景,管理场景,和玩家场景。当我运行程序并输入用户和密码时,第二个应该打开。现在的问题是,第二个场景没有打开。它甚至连接到数据库,但第二个场景没有打开。我已经检查了代码,我看不出有什么问题。能不能请一些帮帮我,发生了什么事。