如上3图所示,图片放在工程目录下,
URL url = SwingAndThread.class.getResource("1.gif"); // 获取图片的URL
Icon icon = new ImageIcon(url); // 实例化一个Icon
jl.setIcon(icon); // 将图标放置在标签中
这么写的话就会报以下错误:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at HelloJAVA.SwingAndThread.<init>(SwingAndThread.java:21)
at HelloJAVA.SwingAndThread.main(SwingAndThread.java:53)
但是这么写能够正常运行:
// URL url = SwingAndThread.class.getResource("1.gif"); // 获取图片的URL
Icon icon = new ImageIcon("1.gif"); // 实例化一个Icon
jl.setIcon(icon); // 将图标放置在标签中
为啥啊?第一种情况我把图片放在工程目录下、src目录下、和java文件同目录都会报错。求前辈们解答一下,拜谢!
仔细看一下这篇文章,各种目录位置都在里面了
http://blog.csdn.net/lcj8/article/details/3502849
http://blog.csdn.net/rikgong/article/details/5895306
说明路径位置取的不对,取不到
resource是从你编译后的文件夹中寻找,如果你的是在根目录下,直接在bin下找,找不到外边的;要不你把图片放到bin目录下,要不你就用相对路径,即不使用resource的方式,直接写路径即可,那样的话是从整个工程根目录找。
用项目路径不就好了。