我已经阅读了~4 Stackoverflow帖子(1,2),并且在那里解释了所有类似的内容,但是当我尝试加载图片时,我收到了NullPointerException。
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Input stream must not be null
我的包结构:
packages http://i62.tinypic.com/n3b0wl.png
我尝试加载图片的代码:
Image image = new Image(this.getClass().getResourceAsStream("/regexgolf2/ui/img/edit.png"));
我不明白为什么它不起作用。
答案 0 :(得分:2)
您的图片位于src
文件夹下的包中。类加载器不会查找文件。类加载器在类路径中查找文件。
为了使getResource
适用于您的情况,您需要将图像放在类路径中。
我建议您手动将图像文件复制到构建文件夹(在同一路径下,例如out/regexgolf2/ui/images
并再次运行您的应用。
如果它有效,您可以开始考虑将文件放到类路径中的方法(例如,将它们作为构建/打包过程的一部分复制或将它们放在类路径中的另一个文件夹中)。
答案 1 :(得分:1)
对于netbeans maven javaFX项目,资源(img文件夹)必须位于资源文件夹中:
然后您可以加载资源,例如:
Image escribir = new Image(getClass().getResourceAsStream("/img/login.png"));
答案 2 :(得分:0)
我在IntelliJ中也遇到了类似的问题,虽然看起来都不错,但是没有用。就我而言,当我重建项目时,所有工作都能正常进行。