如果想引入相对路径时,一定要记得导入图片
引入的语句如下
Image image = GameUtil.getImage("images/a.jpg");
代码如下
package my;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class GameUtil{
private GameUtil(){
}
public static Image getImage(String path){
BufferedImage bi = null;
try{
URL u = GameUtil.class.getClassLoader().getResource(path);//获取相对资源位置
bi = ImageIO.read(u);
}catch(IOException e){
e.printStackTrace();
}
return bi;
}
}
由于使用了这段代码getClassLoader().getResource(path),所以必须使用相对路径导入图片
报错
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1400)
at little.game/my.GameUtil.getImage(GameUtil.java:19)
at little.game/my.MyGameFrame.<init>(MyGameFrame.java:34)
at little.game/my.MyGameFrame.main(MyGameFrame.java:16)
为什么呢??!
导入图片时,首先右击文件夹自己新建的images包,选择import
然后选择File System,点击Next进行下一步
在上面的Browse选好文件夹,
并勾选好自己要导入的图片后,
一定要点开左下方的Advanced!!!
把Create links in workspace也给钩上
不然你导入的图片将会显示成a-副本.jpg的样式
注意和a.jpg的区别
这个时候时无法被调用的!!!
被这个问题卡了一个小时,活活被气死又气活