您的位置:首页 > 编程语言 > Java开发

java中画图

2012-06-19 20:57 246 查看
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;

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: