c**l 发帖数: 159 | 1 在paint( )方法中,要将每一帧的画面画出来。因此,程序应预先将图画准备好。
每帧图画都是Image类的对象。
images=new Image[10];
for (int i=1;i<=10;i++)
images[i-1]=getImage(getCodeBase(),"duke/T"+i+".gif");
如果照上面做了,你会发现你的画面有闪动。这是因为当AWT调用update( )方法时,缺省 的update( )方法先清掉成员的背景,再去调用paint( )
方法。因此,要消除闪动,首先要重载 update( )方法,从而去掉不必要的清屏操作。
即使你重载后的update( )方法完全执行画图的所有操作,重载paint( )方法是必要的。 因为当成员被别的窗口盖住的部分又重现出来时,程序将直接
调用pain t( )而不是update( ),因此paint( )方法中要有画图操作。最简单的办法是让它调用重载后 的update( )方法。
public void paint(Graphics g){
update(g); |
|