eclipse编译没问题,但是运行不出界面。代码如下

/**功能:1、坦克界面*2、画出一个坦克*/packagecom.tan1;importjava.awt.*;importjavax.swing.*;publiccla... /*
*功能:1、 坦克界面
* 2、画出一个坦克
*/

package com.tan1;
import java.awt.*;
import javax.swing.*;

public class tanketu1 extends JFrame {
MyPanel mp=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
MyPanel mtg=new MyPanel();
}
//构造函数
public tanketu1()
{
mp=new MyPanel();
this.add(mp);
this.setSize(400,300);
this.setVisible(true);
}
}
//我的面板
class MyPanel extends JPanel
{
//定义一个我的坦克
Hero hero=null;
public MyPanel()
{
hero=new Hero(10,10);
}

//重新覆盖paint
public void paint(Graphics g)
{
super.paint(g);
g.fillRect(0,0,400,300);
this.drawTank(hero.getX(), hero.getY(), g, 0, 0);
// g.setColor(Color.yellow);
// //画出坦克
// //1.画出左面的矩形
// g.fillRect(hero.getX(), hero.getY(), 5, 30);
// //画出右边的矩形
// g.fillRect(hero.getX()+15,hero.getY(), 5, 30);
// //画出中间矩形
// g.fillRect(hero.getX()+5,hero.getY()+5, 10, 20);
// //画出圆形
// g.fillOval(hero.getX()+5,hero.getY()+10, 10, 10);
// //画出炮筒
// g.drawLine(hero.getX()+10,hero.getY()+15, hero.getX()+10, hero.getY());
}
//画出坦克的函数
public void drawTank(int x,int y,Graphics g,int direct,int type)
{
switch(type)
{
case 0:
g.setColor(Color.yellow);
break;

case 1:
g.setColor(Color.cyan);
break;
}
//判断方向
switch(direct)
{
case 0:

//画出坦克
//1.画出左面的矩形
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+10, 10, 10);
//画出炮筒
g.drawLine(x+10,y+15, x+10, y);
break;
}

}

}
//坦克类
class Tank
{
//表示坦克的横坐标

int x=0;
int y=0;
public Tank(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 Tank
{
public Hero(int x,int y)
{
super(x,y);
}
}
展开
 我来答
赤壁赋白
2014-03-28 · TA获得超过988个赞
知道小有建树答主
回答量:338
采纳率:100%
帮助的人:234万
展开全部


// TODO Auto-generated method stub
MyPanel mtg=new MyPanel();
tanketu1 a = new tanketu1();//少了这句话
}

对于Component组件,有些是不能单独使用的,需要放在其他容器之中,例如panel就是,你new一个panel,是不可能看到他的,需要把它放到JFrame里面,你下面this.add(mp);就是这个意思了,其实你上面的new MyPanel在这里就没有用了,关于其他地方的错误你再自己琢磨琢磨。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式