在src-Folder外部加载图像:NullPointerException

时间:2019-02-13 09:11:51

标签: javafx

我尝试了各种变体在JavaFX中加载图像。

两个变体作品。 此处的示例:

同一包装中的图片主要:

    new Image(getClass().getResourceAsStream("gesicht.png");

图片位于img-Package中,但位于src文件夹中:

    Image img = new 
    Image(getClass().getResource("../img/gesicht.PNG").toExternalForm());

最后一个变种不起作用,我不明白为什么。有人可以解释为我吗?

img文件夹中的图像,在src文件夹外部

      Image img = new Image(ClassLoader.getSystemResource("../../img/gesicht.png").toExternalForm());

我已经尝试了一切。但是,只要图片在src文件夹之外,我总是会收到NullPointerException或失败的URL

文件夹结构:

项目

  • src

    • 应用
      • Main.java
  • img

    • gesicht.png

Project-Structure with all variants

2 个答案:

答案 0 :(得分:0)

您需要确保img文件夹是资源文件夹。 然后:

Image img = new Image(getClass().getResource("/img/gesicht.png").toExternalForm());

我认为相对路径从根开始,而不是源文件所在的地方。

答案 1 :(得分:0)

我有解决方法:

  1. 将img文件夹添加为资源文件夹
  2. getResource()不起作用!但是:

图片img =新图片(“ file:img / gesicht.png”); primaryStage.getIcons()。add(img);

替代: 图片图片=新图片(新File(“ img / gesicht.png”)。toURI()。toString());