使用ImageView.SetImage()

时间:2017-02-02 14:08:36

标签: java javafx

我正在慢慢地教自己如何编码并遇到困扰我的事情

使用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文件在我调用方法之前已经加载并初始化了改变周围的图像。

任何人都可以指出我需要注意的方向,因为我的大脑受伤了

0 个答案:

没有答案