我正在编写一个小型应用程序,当我尝试创建ImageIcon时,总是遇到异常。异常是由以下代码行引起的:
prayerLevel.setIcon(new ImageIcon(getClass().getResource("/icons/icon_prayer.png")));
现在在我的程序中,文件夹/icons/确实存在。我不知道它是否有区别,但类文件位于包中,而icons文件夹位于项目文件夹中(当您看到bin和src文件夹时)。
我环顾了一下,找不到能够帮助我解决问题的解决方案。也许你们中的任何一个都可以提供帮助?
编辑:有人问我的文件夹层次结构:
我知道类文件与图标不在同一个文件夹中,但是我已经制作了一些应用程序,在这些应用程序中,我不得不从其他文件夹中加载文件,并且总是使用/folder/来工作。
编辑2:
System.out.println(getClass().getResource("/icons/icon_prayer.png") == null);
打印真实。
最佳答案
我相信Noji正在从ImageIcon
构造函数中抛出,因为getResource
返回null
。
请尝试以下方法:
getClass().getClassLoader().getResource("/icons/icon_prayer.png")
或者:
ClassLoader.getSystemResource("/icons/icon_prayer.png")
关于Java:class.getResource(...)中的NullPointerException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6023039/