Java 加载图片

想必很多新手也曾像我一样想编出一些好玩的东西来,但如果连图片加载都不会,那可打脸了.闲话少说,上代码
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class GameUtil {
public static Image getImage(String path) {
URL url = GameUtil.class.getClassLoader().getResource(path);
BufferedImage image = null;
try {
image = ImageIO.read(url);
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
}
这个是一个工具类,就是将我们平常加载图片时要经常的一个方法将它封装起来,以后要用的时候就直接拿来用,当然你也可以将它转换jar包,或者自己写一个,这都是可以的. 光有工具,没有实例就像看api文档,所以上代码
package Test;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JFrame;
public class GameTest {
public static void main(String[] args) {
new Test("开心");
}
}
class Test extends JFrame{
Image image=GameUtil.getImage("image/1.jpg");
public Test(String title){
super(title);
init();
}
void init(){
this.setSize(image.getHeight(null),image.getHeight(null));
//image.getHeight(null)获取图片的大小
this.setLocation(100, 100);
this.setResizable(false);//锁定窗口大小
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {//JFrame父类的paint()方法重写
**g.drawImage(image,0, 0, image.getHeight(null), image.getHeight(null), this);**//调用g.drawImage()方法画出图片
g.drawRect(100, 100, 100, 100);
g.setColor(Color.CYAN);
g.setFont(new Font("宋体",Font.BOLD , 50));//Fond.Bold常量
g.drawString("哈哈哈", 100, 100);
}
}
**
注意事项
**
在src下新建一个image的文件夹folder,将所用的照片放在里面就行了使用这个工具类时只能用相对路径,不可用绝对路径
URL url = GameUtil.class.getClassLoader().getResource(path);
所用的URL是主类所在的位置
调用时一定要写清楚文件所在的位置比如我所用的相对地址是 image/1.jpg
Image image=GameUtil.getImage("image/1.jpg");
还有后缀名也要加上去 `