这是给我带来麻烦的方法:
private static final String theURL = "/optimize/images/prun0.png";
public static void createChallenge() {
Stage challStage = new Stage();
Group challGroup = new Group();
Rectangle rect = new Rectangle(900, 500);
Image image = new Image(theURL);
System.out.println(image.getHeight()); //Prints 0.0
rect.setFill(new ImagePattern(image)); //Gives runtime error: "Image must be non-null"
challStage.setResizable(false);
challStage.setTitle("Optimize!");
//ImageView iv = new ImageView(image);
challGroup.getChildren().add(rect);
Scene challScene = new Scene(challGroup, 900, 500);
challStage.setScene(challScene);
challStage.setMinHeight(500);
challStage.setMinWidth(900);
challStage.show();
challStage.centerOnScreen();
challStage.setX(challStage.getX()-150);
}
正如它所说,它会引发关于图像为空的运行时错误。我错过了什么基本的东西?此外,这里的最终目标是将图像放到舞台或场景上。我试图将ImageView对象添加到定义的challGroup中,但是舞台显示为空白。因此,我尝试将图像添加到Rectangle对象,并发现实际的运行时错误。我已经三次检查了URL。我也尝试过使用“file:prun0.png”来得到类似的结果。任何建议表示赞赏。谢谢大家。