我是java新手,在使用java-7-openjdk在eclipse linux mint上运行时(我想,虽然不知道eclipse是否有自己的sun jdt),
public class Gui extends JFrame{
private JComboBox box;
private JLabel picture;
private static String[] filename = {"b.PNG","x.PNG"};
private Icon[] pics = {new ImageIcon(getClass().getResource(filename[0])),
new ImageIcon(getClass().getResource(filename[1]))};
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
at bucky.Gui.<init>(Gui.java:10)
at bucky.apples.main(apples.java:12)我看不出有什么问题(linux mint 15 cinnamon)
发布于 2013-08-07 21:40:08
此异常在ImageIcon构造函数中引发,并声明getClass().getResource(filename[0])或getClass().getResource(filename[1])为空
您指定的路径不正确。确保这些图像所在的文件夹位于类路径中
可以进行简单的检查:
File f = new File("b.PNG");
System.out.println(f.exists());应该打印你的true
发布于 2013-08-07 21:47:14
getClass().getResource(filename[0])其中filename[0]为b.PNG表示相对路径,并将尝试从与您的类Gui相同的文件夹(即相同的包)加载图像。
确保图像确实在该位置。
如果您的图像位于默认包(即根源文件夹)中,则可以将其加载为getClass().getResource("/" + filename[0]) (即使用绝对路径)。
发布于 2013-08-07 22:04:00
哦,人类的错误可能是如此卑劣。我的文件不是b.PNG和x.PNG,而是a.PNG和x.PNG,尽管如此,还是很遗憾。
https://stackoverflow.com/questions/18104883
复制相似问题