双缓冲技术有助于消除动画的闪烁,今天我想实践一下,我现在只是把一张图片用双缓冲显示出来,但是编译可以,一运行就出现异常,请问下这程序那里有问题,谢谢!
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.image.*;; public class test3 extends JFrame{
GraphicsPanel p;
test3(){
p=new GraphicsPanel();
getContentPane().add(p);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800,600);
show();
}
public static void main(String agrs[]){
new test3();
}
}
class GraphicsPanel extends JPanel {
int w,h;
Image m1;
MediaTracker mt;
Image offImg1;
Graphics offscreen1;
GraphicsPanel(){
mt=new MediaTracker(this);
m1=Toolkit.getDefaultToolkit().getImage("B8.jpg");
mt.addImage(m1,0);
try{
mt.waitForAll();
}catch(InterruptedException e){ e.printStackTrace();}
 w=getWidth();
 h=getHeight();
     try{
offImg1=createImage(w,h);

}catch(Exception e){}

}

public void paint(Graphics g){
offscreen1=offImg1.getGraphics();  
offscreen1.drawImage(m1,0,0,this);
g.drawImage(offImg1,0,0,this);
}
public void update(Graphics g){
            paint(g);
           
}

}