java awt——坦克大战界面绘制

最近的Java 课程学到了Awt基础界面编程。老师遂出一实验:
3张素材,要求完成一个界面绘制。

  • 思路
    1、利用抽象类Component,对其paint(Graphics g)方法进行重写,将图片绘制在 Frame窗口上。
    2、利用工具包抽象类Toolkit中的静态方法getDefaultToolkit获取工具包(一个java自定义对象),再由此调用getImage(url)方法获得图片
    3、使用 图形类Graphics中的 drawImage方法进行图形绘制。

其中:
Graphics.drawImage(img, x, y, width, height, observer);
说明:img是获得的图片,x/y代表再observer中的绝对位置,width/height表示图片的尺寸信息,observer表示图片的载体(理解为Container?)。

  • 实现
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Practice6_5 {
    
    
	public static void main(String[] args) {
    
    
		new MyTankFrame();
	}
}

class MyTankFrame extends Frame
{
    
    
	public MyTankFrame() {
    
    
		super("坦克大战游戏");
		this.setBounds(100,100,560,890);
		this.setBackground(Color.white);
		myWindowClose();
		this.setVisible(true);
		this.setResizable(false);
	}
	public void myWindowClose() {
    
    
		this.addWindowListener(new WindowAdapter() {
    
    
			@Override
			public void windowClosing(WindowEvent e) {
    
    
				System.exit(0);
			}
		});
	}
	@Override
	public void paint(Graphics g) {
    
    
		Image tank1 = Toolkit.getDefaultToolkit().getImage("C:\\Users\\HiWin10\\Desktop\\学习资料教材\\java\\实验6坦克素材\\p1tankD.gif");
		Image tank2 = Toolkit.getDefaultToolkit().getImage("C:\\Users\\HiWin10\\Desktop\\学习资料教材\\java\\实验6坦克素材\\p2tankU.gif");
		Image steel = Toolkit.getDefaultToolkit().getImage("C:\\Users\\HiWin10\\Desktop\\学习资料教材\\java\\实验6坦克素材\\steels.gif");
		
		// steels
		for(int i=0; i<9; i++) {
    
    
			g.drawImage(steel, i*60+10, 40, 60, 60, this);
		}
		for(int i=0; i<9; i++) {
    
    
			g.drawImage(steel, i*60+10, 820, 60, 60, this);
		}
		for(int i=0; i<12; i++) {
    
    
			g.drawImage(steel, 10, 60*i+100, 60, 60, this);
		}
		for(int i=0; i<12; i++) {
    
    
			g.drawImage(steel, 490, 60*i+100, 60, 60, this);
		}
		
		// tank1
		g.drawImage(tank1, 70, 350, 60,60,this);
		
		// tank2
		g.drawImage(tank2, 190, 410, 60,60,this);
		
	}
}


在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43341057/article/details/105335604