ImageView找不到图片网址

时间:2017-05-30 17:25:52

标签: java image javafx imageview gridpane

我在GridPane中显示图像时遇到问题。我得到错误,输入流不能为空。异常位于ImageView的创建对象的第一行。如你所见,图片在文件夹中。可能是个问题。

    ImageView windows = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
    ImageView linux = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
    ImageView mac = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
    ImageView android= new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png"))); 

    GridPane gpanel = new GridPane();
    gpanel.setPadding(new Insets(5));       
    gpanel.add(windows, 0, 0);
    gpanel.add(linux, 1, 0);
    gpanel.add(mac, 0, 1);
    gpanel.add(android, 1, 1);

enter image description here

1 个答案:

答案 0 :(得分:3)

那是因为它没有找到图像,你需要删除路径开头的res,例如:

这:"res/windows.png" - >应该是:"/windows.png" ......等等。

因为getResourceAsStream(String name)通过搜索与该类关联的资源找到具有给定名称的资源,并且它从项目的根开始,但因为res不是另一个包,所以您不需要将它添加到相对路径的开头。

此外,假设您在另一个名为windows.png的软件包中有anotherPackage,那么您可以从main类(在您的示例中)访问它,如下所示:{{1} }。