您的位置:首页 > 其它

Images的标准用法

2016-07-29 15:29 288 查看
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.util.HashMap;
import java.util.Map;

public class PaintTank {
private Tank tank;
int centreX;
int centreY;

public PaintTank(Tank tank) {
this.tank = tank;
}

//工具包: 可以干一些适合操作系统干的事		create创造
private static Toolkit tk = Toolkit.getDefaultToolkit();	//拿到默认的工具包

//这个静态好用
//把资源文件放到clsspath下,eclipse的src目录下, 使用url加载, 等真正要用了才加载进内存, 异步IO, 第一次可能画不出来
private  static Image[] images = null;
private static Map<String, Image> imagesTank = new HashMap<String, Image>();//不写这个用图片的时候images[0]这么都是什么鬼

<span style="white-space:pre">	</span>//静态代码块的好处
static {
images = new Image[] {
tk.getImage(PaintTank.class.getClassLoader().getResource("images/tankL.gif")),
tk.getImage(PaintTank.class.getClassLoader().getResource("images/tankU.gif")),
tk.getImage(PaintTank.class.getClassLoader().getResource("images/tankR.gif")),
tk.getImage(PaintTank.class.getClassLoader().getResource("images/tankD.gif"))
};

imagesTank.put("L", images[0]);
imagesTank.put("U", images[1]);
imagesTank.put("R", images[2]);
imagesTank.put("D", images[3]);
};

public void paintTank(Graphics g) {
tank.getMoveTank().move();

switch(tank.getDirection()){
case L:
g.drawImage(imagesTank.get("L"), tank.getxAxis(), tank.getyAxis(), null);
break;
case U:
g.drawImage(imagesTank.get("U"), tank.getxAxis(), tank.getyAxis(), null);
break;
case R:
g.drawImage(imagesTank.get("R"), tank.getxAxis(), tank.getyAxis(), null);
break;
case D:
g.drawImage(imagesTank.get("D"), tank.getxAxis(), tank.getyAxis(), null);
break;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: