Java NullPointerException,即使对象指向FXML实例

Java NullPointerException,即使对象指向FXML实例,java,javafx,scenebuilder,Java,Javafx,Scenebuilder,(我正在使用场景生成器…) 在这里,我用相同的ID从FXML文件实例化了对象 <Sphere fx:id="icon" ... /> 这是主要的课程。。。(“控制器类”) 我想我也应该提到我犯了这个错误。。。我不知道如何摆脱。(以防与“空”点相关。) 您需要创建加载程序的实例 FXMLLoader loader = new FXMLLoader(getClass().getResource("main.fxml")); 然后您可以访问控制器

(我正在使用场景生成器…)

在这里,我用相同的ID从FXML文件实例化了对象

<Sphere fx:id="icon" ... />
这是主要的课程。。。(“控制器类”)

我想我也应该提到我犯了这个错误。。。我不知道如何摆脱。(以防与“空”点相关。)


您需要创建加载程序的实例

FXMLLoader loader = new FXMLLoader(getClass().getResource("main.fxml"));
然后您可以访问控制器的实例

Main main = loader.getController();
System.out.println(main.icon); 
然后,您可以从控制器访问
图标

Main main = loader.getController();
System.out.println(main.icon); 
注意,您仍然可以通过获取家长

Parent root = loader.load();

您可能想考虑从控制器的初始化方法来做这件事,那么您不需要公开控制器的图标。还有,为什么你的图标是静态的?我认为您需要放弃静态。

您的.fxml文件中是否有关于此控制器类的信息?我的意思是:fx:controller=“MusicGeneratorGUI”请阅读参考的帮助页面并采取相应的行动。。需要应用程序、控制器(您不希望控制器与应用程序是同一个实例,是吗?——如果您希望控制器与应用程序是同一个实例,那就大错特错了,需要通过有关fxml的教程了解其机制;)、fxml和completestacktrace@Abra是的,谢谢,我知道尝试用外语讲笑话是。。大胆的尝试:)我认为如果你发布你的FXML文件会有所帮助。或者至少包含
xmlns
fx:controller
属性的行。
@FXML私有球体图标不正确。该代码应仅在控制器中。@RainbowDoritosAreMine我编写该代码不是为了使用“加载”,而是为了使用“新的FXMLLoader(…)。@RainbowDoritosAreMine您的问题仍然不完整。最好的例子是做一个完整的例子。FXML、Controller和可以重现问题的应用程序类。我不确定你是如何检查图标是否为空的。您是否删除了行
@FXML private Sphere图标来自您的MusicGeneratorGui类?
System.out.println(main.icon); 
Parent root = loader.load();