修改后的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);//
}
}
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);//
}
}
但是运行后board.jpg和chessman.jpg仍然不能显示.
甚至连g.drawString()都不能显示任何字符串.请问这又是什么原因呢?
你为什么不直接在Draw里面paint呢?
在init()中加入add(pnl);
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的图象显示,
请指出错在何处。