问题:图片一直加载不出来,是因为JDK版本的原因吗
package com.bjsxt.plane;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
* 游戏主窗口
*/
public class MyGameFrame extends Frame {
Image plane = GameUtil.getImage("images/plane.png");
Image bg = GameUtil.getImage("images/bg.jpg");
@Override
public void paint(Graphics g) { //g当做是一支画笔
g.drawImage(bg,0,0,500,500,null);
g.drawImage(plane,100,100,22,33,null);
}
//初始化窗口
public void launchFrame(){
this.setTitle("飞机大战-尚学堂");
setVisible(true); //窗口是否可见
setSize(500,500); //窗口大小
setLocation(400,400); //窗口打开的位置
//增加关闭窗口的动作
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0); //正常退出程序
}
});
}
public static void main(String[] args) {
MyGameFrame gameFrame = new MyGameFrame();
gameFrame.launchFrame();
}
}
package com.bjsxt.plane;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
/**
* 游戏的工具类
*/
public class GameUtil {
//构造器私有。防止别人创建本类的对象.
private GameUtil(){
}
public static Image getImage(String path) { //images/plane.png
BufferedImage img = null;
URL u = GameUtil.class.getClassLoader().getResource(path);
try {
img = ImageIO.read(u);
} catch (IOException e) {
e.printStackTrace();
}
return img;
}
public static void main(String[] args) {
Image img = GameUtil.getImage("images/plane.png");
System.out.println(img);
}
}
截图: