【发布时间】:2018-11-05 00:39:58
【问题描述】:
我有一个使用 GUI 的简单应用程序,我决定将图像放入 jButtons。当我在我的机器上运行该程序时,该程序运行正常,但是当其他人从包括我自己在内的 Github 将该程序克隆到他们的计算机上时,会出现空异常错误。 Github 仓库的链接是:
https://github.com/MustafaAli789/TimelineApplication
“主时间线”页面是不运行的页面。
由于某种原因,每当我提供图像路径时,Java 都会返回 null,即使它是正确的并且图像直接位于指定的位置。
下面的代码是会引发错误的行之一的示例:
DeleteBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/DeleteIconHover.png")));
令我困惑的是,它在我的计算机上运行良好,但是当其他人克隆它时,甚至当我克隆它时,它都不起作用。此外,当您克隆它时,您可以在 GUI 编辑器中完美地看到图像,但是在运行文件时,Java 似乎找不到图像。
我对其中一个图像进行了文件引用,然后尝试了 .getAbsolutePath,它返回了一个路径,但是当我执行 .exists() 时,Java 返回 false。两件事,它如何确定路径然后说它不存在,其次,路径不包含 src。
【问题讨论】:
-
Java is returning null whenever I provide the image path- 您没有提供图像路径。您只是提供文件名。我不't know how your application is set up if your are using packages or not. Read the section from the Swing tutorial on [How to Use Icons 这可能有助于解释使用资源的工作原理。我也会去掉前面的“/”。 -
我现在尝试使用以下路径:“src/TimelineApplication/DeleteIconHover.png”但仍然出现空指针异常......
-
我不知道您为什么要使用该路径。类路径是您的类文件所在的位置。因此,需要将图像添加到类路径上的目录中。
-
好的,现在可以了,谢谢哥们
标签: java user-interface button github nullpointerexception