我为什么图形界面调不出来,求大佬帮助

羊毛坦 2019-03-30 04:37:42
import java.awt.*;
import javax.swing.*;

public class TankTest extends JFrame {
Mypanel mp=null;
public static void main(String[] args) {
TankTest tank=new TankTest();
}
public TankTest() {


this.setSize(400, 300);
this.setVisible(true);
this.setTitle("坦克");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mp=new Mypanel();
this.add(mp);
}

}
class Mypanel extends JPanel{
Hero hero=null;
public Mypanel() {
hero=new Hero(10, 10);

}
public void print(Graphics g) {
super.paint(g);
g.fillRect(0, 0, 400,300);
this.drawtank(hero.getX(), hero.getY(), g, 0, 0);

}
public void drawtank(int x,int y,Graphics g,int direction,int type) {
switch(type) {
case 0:
g.setColor(Color.blue);
break;
case 1:
g.setColor(Color.green);
break;
}
switch(direction) {
case 0:
g.fillRect(x, y, 5, 30);
g.fillRect(x+15,y, 5, 30);
g.fillRect(x+5, y+5, 10, 20);
g.fillOval(x+5, y+15, 10, 10);
g.drawLine(x+10, y+15, x+10, y+15);
break;
case 1:

}


}}
class Tanks{
int x=50;
int y=50;
public Tanks(int x,int y) {
this.x=x;
this.y=y;
}
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;
}}
class Hero extends Tanks{
public Hero(int x,int y) {
super(x,y);
}}

...全文
109 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
羊毛坦 2019-03-30
  • 打赏
  • 举报
回复
还是太生涩了。。。没看出来区别
图图卡卡 2019-03-30
  • 打赏
  • 举报
回复
把public void print(Graphics g) 改成 @Override public void paint(Graphics g) 这才是画图的方法啊
羊毛坦 2019-03-30
  • 打赏
  • 举报
回复
我运行了一下debug,显示是在调用Mypanel的地方,没有进入Mypanel里面直接跳过了,为什么啊
图图卡卡 2019-03-30
  • 打赏
  • 举报
回复
@Override
	public void paint(Graphics g) {
		super.paint(g);
		g.fillRect(0, 0, 400, 300);
		this.drawtank(hero.getX(), hero.getY(), g, 0, 0);

	}

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧