java中画_java中画图

import java.awt.Color;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class TankClient extends Frame{

public final int FRAME_HEIGHT = 600;

public final int FRAME_WIDTH = 700;

public final int TANK_SIZE = 30;

private static Toolkit tk = Toolkit.getDefaultToolkit();

Image image = tk.getImage(TankClient.class.getClassLoader().getResource("Image/tankU.gif"));

Image offScreenImage = null;

public int x=20,y=40;

public static void main(String[] args) {

new TankClient().lauchFrame();

}

public void lauchFrame(){

setBounds(300, 100, FRAME_WIDTH, FRAME_HEIGHT);

setBackground(Color.black);

setResizable(false);

addWindowListener(new WindowAdapter(){

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

setVisible(true);

addKeyListener(new KeyMonitor());

new Thread(new PaintThread()).start();

}

@Override

public void paint(Graphics g) {

//启动Frame的时候会自动调用该paint()方法

g.drawImage(image, x, y, null);

}

@Override

public void update(Graphics g) {

if (offScreenImage == null) {

offScreenImage = this.createImage(FRAME_WIDTH, FRAME_HEIGHT);

}

Graphics gOffScreen = offScreenImage.getGraphics();

Color c=gOffScreen.getColor();

gOffScreen.setColor(Color.black);

gOffScreen.fillRect(0, 0, FRAME_WIDTH,FRAME_HEIGHT);

gOffScreen.setColor(c);

paint(gOffScreen);

g.drawImage(offScreenImage,0,0,null);

}

private class PaintThread implements Runnable {

public void run() {

do {

repaint();

try {

Thread.sleep(100);

} catch (InterruptedException e) {

e.printStackTrace();

}

} while (true);

}

}

private class KeyMonitor extends KeyAdapter{

@Override   public void keyPressed(KeyEvent e) {             int key = e.getKeyCode();             switch(key){             case KeyEvent.VK_W:              image = tk.getImage(TankClient.class.getClassLoader().getResource("Image/tankU.gif"));              y-=5;              if(y<=15){               y=15;              }              break;             case KeyEvent.VK_S:              y+=5;              if(y >= 555){               y=555;              }              image = tk.getImage(TankClient.class.getClassLoader().getResource("Image/tankD.gif"));              break;             case KeyEvent.VK_A:              x-=5;              if(x<=-5){               x=-5;              }              image = tk.getImage(TankClient.class.getClassLoader().getResource("Image/tankL.gif"));              break;             case KeyEvent.VK_D:              x+=5;              if(x>=655){               x=655;              }              image = tk.getImage(TankClient.class.getClassLoader().getResource("Image/tankR.gif"));              break;             }   }     } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值