我正在慢慢地教自己如何编码并遇到困扰我的事情
使用setImage更改图像时,我得到一个nullpointer异常。我知道这可能是因为我在进行更改时没有初始化imageview,但我不确定是否是这种情况。
我目前有这段代码处理我的场景开关
public void initSceneSwitch(String scr) {
try {
Parent root = FXMLLoader.load(getClass().getResource("/main/resources/fxml/" + scr + ".fxml"));
sceneDisplayed = new Scene(root);
sceneDisplayed.getStylesheets().add(getClass().getResource("/main/resources/css/GameTheme.css").toExternalForm());
primaryStage.setScene(sceneDisplayed);
primaryStage.show();
sceneChange(scr);
} catch (IOException e) {
e.printStackTrace();
}
}
从长远来看,这将处理图像切换,可能有更多变量决定显示哪个图像
public void sceneChange(String newScene) {
switch (newScene) {
case "UILoadingScreen":
break;
case "UIMainScreen":
UIMainScreen uiMS = new UIMainScreen();
Image img= new Image("/main/resources/icons/test.png");
uiMS.getImageView().setImage(img);
uiMS.getImageViewAnchorPane().getChildren().add(uiMS.getImageView());
break;
default:
break;
}
}
null指针异常发生在uiMS.getImageView()。setImage(img);.这是我感到困惑的地方,从考虑我的代码如何运行"沿着一条线",我认为我的控制器和fxml文件在我调用方法之前已经加载并初始化了改变周围的图像。
任何人都可以指出我需要注意的方向,因为我的大脑受伤了