JavaFX,Image对象在声明后出现为null?

时间:2014-05-15 22:14:52

标签: java image null imageview

这是给我带来麻烦的方法:

    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”来得到类似的结果。任何建议表示赞赏。谢谢大家。

0 个答案:

没有答案