Swing 画出坦克

 

package com;

import javax.swing.*;
import java.awt.*;

public class TankGame1 extends JFrame{

 MyTankPanel mytankPanel=null;
 
 public static void main(String[] args) {
  TankGame1 tankGrame=new TankGame1();
 }
 
 public TankGame1(){
  mytankPanel=new MyTankPanel();
  this.add(mytankPanel);
  this.setSize(400, 300);
  this.setLocation(400, 250);
  this.setVisible(true);
  this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
 }
}

//我的面板
class MyTankPanel extends JPanel{
 
 //定义一个我的坦克
 MyTank myTank=null;
 
 public MyTankPanel(){
  myTank=new MyTank(12,12);
 }
 
 //重写paint方法
 public void paint(Graphics g){
  super.paint(g);
  g.fillRect(0, 0, 400, 300);
  
  this.drawTank(myTank.getX(), myTank.getY(), g, 1, 0);
 }
 
 /**
  * 画坦克方法
  * @param x 横轴
  * @param y 纵轴
  * @param g 画图尖
  * @param type 是自己还是敌人
  * @param derect 方向
  */
 public void drawTank(int x,int y,Graphics g,int type,int derect){
  
  //判断坦克类型
  switch(type){
  //如果为0,则表示我的坦克
  case 0:
   g.setColor(Color.CYAN);
   break;
  //如果为0,则表示我的坦克
  case 1:
   g.setColor(Color.RED);
   break;
  }
  
  //判断方向
  switch(derect){
  //向上
  case 0:
   //1.画出左边的矩形
   g.fill3DRect(x, y, 7, 32,false);
   //2.画出右边的矩形
   g.fill3DRect(x+20, y, 7, 32,false);
   //画出中间矩形
   g.fill3DRect(x+5, y+5, 15, 22,false);
   //画出圆形
   g.fillOval(x+5, y+8, 15, 15);
   //画出一条直线
   g.drawLine(x+13, y-2, x+13, 30);
   break;
  
  case 1:
   break;
  }
 }
}


//坦克类
class Tank{
 
 //坦克横坐标
 int x=0;
 //坦克纵坐标
 int y=0;
  
 public int getX() {
  return x;
 }

 public void setX(int x) {
  this.x = x;
 }


 public int getY() {
  return y;
 }

 public void setY(int y) {
  this.y = y;
 }

 public Tank(int x,int y){
  this.x=x;
  this.y=y;
 }
}

//我的坦克
class MyTank extends Tank{
 
 public MyTank(int x,int y){
  super(x,y);
 }
}

你可能感兴趣的:(swing,String,Class,import)