我正在使用 FXML,并且在一个舞台上有两个不同的场景。btnStart 在scene1,imgBtn 在scene2。当我单击 btnStart 时,它会将 scene2 设置为舞台并将图像加载到 imageView(这会引发 NullPointerException)。但是当我在 scene2 上单击 imgBtn 时,它正在加载图像。
我的问题是当我切换到 scene2 时如何动态加载图像?
@FXML private Button imgBtn;
@FXML private Button btnStart;
@FXML public ImageView imageView;
@FXML
public void imgBtnClicked()throws Exception{
imageView.setImage(new Image(new FileInputStream("src/Assets/CardAssets/png-v2/3C.png")));
}
@FXML
public void btnStartClicked()throws Exception{
SetScene2();
imageView.setImage(new Image(new FileInputStream("src/Assets/CardAssets/png-v2/3C.png")));
}
public void SetScene2()throws Exception {
Parent root = FXMLLoader.load(getClass().getResource(fxmlFile2.fxml));
String css=getClass().getResource("myStyle.css").toExternalForm();
Scene scene;
try{
scene=new Scene(root,root.getScene().getWidth(),root.getScene().getHeight());
}
catch(NullPointerException e) {
scene=new Scene(root,stage.getWidth(),stage.getHeight());
}
scene.getStylesheets().add(css);
stage.setScene(scene);
}