修改后的Bpnl
class Bpnl extends Panel {
  Vector bv;
  public  Bpnl(Vector vb) {   ///
    bv=vb;
  }  public void paint(Graphics g) {
    for(int i=0;i<bv.capacity();i++) {
      g.drawImage((Image)bv.get(i),0,0,this);//
    }
  }

解决方案 »

  1.   

    虽然报错没有了,
    但是运行后board.jpg和chessman.jpg仍然不能显示.
    甚至连g.drawString()都不能显示任何字符串.请问这又是什么原因呢?
      

  2.   

    因为你的applet中并没有执行Bpnl类中的paint()方法,所以什么都没有显示,
    你为什么不直接在Draw里面paint呢?
      

  3.   

    我的天啊,你在APPLET中根本没有ADD方法,怎么能显示!
    在init()中加入add(pnl);
      

  4.   

    根据pluto和hobby所指出的错误,我将程序改动如下:import java.applet.*;
    import java.awt.*;
    import java.util.*;public class Draw extends Applet {
      Image board,chessman;
      Bpnl pnl;
      Vector vc;
      public void init() {
        board=getImage(getCodeBase(),"board.jpg");
        chessman=getImage(getCodeBase(),"chessman.jpg");
        vc=new Vector();
        vc.addElement(board);
        vc.addElement(chessman);
        pnl=new Bpnl(vc);
        pnl.setSize(280,280);
        add(pnl);
      }
    }class Bpnl extends Panel {
      Vector bv;
      public Bpnl(Vector vb) {
        bv=vb;
      }  public void paint(Graphics g) {
        for(int i=0;i<bv.capacity();i++) {
          try {
            g.drawImage((Image)bv.get(i),0,0,this);
          }
          catch(ArrayIndexOutOfBoundsException ee) {}
        }
      }
    }=======================
    编译没问题,但是运行后只有大概5pixel*5pixel的图象显示,
    请指出错在何处。
      

  5.   

    重载getPreferredSize()就可以了,操!