日期:2014-05-20  浏览次数:20859 次

java画图(Graphics)的问题
看截图:
为什么我创建了3个MyPanel对象(在JPanel上画坦克),结果只显示一个坦克?
还有,再看看我用//屏蔽的代码,用这些代码的话,一个坦克也不显示,这又是为什么?
PS:MyPanel 是一个 绘出一个坦克的类,我创建3个类(是在3个JPanel上吧?),再用上布局管理器,应该就是画出3个不同的坦克了吧?
我附上MyPanel类的代码:
[code=Java][/code]
class MyPanel extends JPanel {
  //覆盖JPanel的paint方法
  public void paint(Graphics g){
  //调用父类完成初始化,这句不能少
  super.paint(g);
  //把图画到JPanel上
  g.setColor(Color.BLUE);//设置颜色
  g.fill3DRect(0+50, 0+50, 20, 100,true);//填充矩形,坦克轮
  g.setColor(Color.GREEN);
  g.fillRect(20+50, 20+50, 41, 60);//填充矩形,坦克身体
  g.setColor(Color.RED);
  g.fillOval(30+50, 30+50, 20, 20);//圆,坦克帽
  g.setColor(Color.BLACK);
  g.fillRect(39+50, 10+50, 2, 30);//填充矩形,坦克口
  g.setColor(Color.BLUE);
  g.fillRect(60+50, 0+50, 20, 100);//填充矩形,坦克轮
   

  }

------解决方案--------------------
Panel的默认布局好象是FlowLayout,所以第二个问题你这么改试试
Janel jp = new Janel(new BorderLayout());
------解决方案--------------------
[Quote=引用:]
看截图:
为什么我创建了3个MyPanel对象(在JPanel上画坦克),结果只显示一个坦克?
还有,再看看我用//屏蔽的代码,用这些代码的话,一个坦克也不显示,这又是为什么?
PS:MyPanel 是一个 绘出一个坦克的类,我创建3个类(是在3个JPanel上吧?),再用上布局管理器,应该就是画出3个不同的坦克了吧?
我附上MyPanel类的代码:
[code=Java][/code]……
[/Quote]你的坦克类首先得实现线程接口 Runnable 先new一个向量 最好是Vector 然后用for循环创建坦克 没创建一个 就开启一个线程
------解决方案--------------------
探讨
[Quote=引用:]
看截图:
为什么我创建了3个MyPanel对象(在JPanel上画坦克),结果只显示一个坦克?
还有,再看看我用//屏蔽的代码,用这些代码的话,一个坦克也不显示,这又是为什么?
PS:MyPanel 是一个 绘出一个坦克的类,我创建3个类(是在3个JPanel上吧?),再用上布局管理器,应该就是画出3个不同的坦克了吧?
我附上MyPa……

------解决方案--------------------
马士兵的坦克大战可以看下,讲的很详细