任务
代码
创建”虚拟图片”并重写 update
Image offScreenImage = null;
@Override
public void update(Graphics g) {
super.update(g);
if(offScreenImage == null) //创建"虚拟图片"
offScreenImage = this.createImage(800,600);
//拿到该"虚拟图片"的画笔
Graphics offScreen = offScreenImage.getGraphics();
//调用 paint() 方法把东西画出来
paint(offScreen);
//把 "虚拟图片" 整个贴到屏幕
g.drawImage(offScreenImage, 800, 600, null);
}
总结
1.当重写 paint() 方法刷新太块时,会出现闪烁现象,原因是内存中的 paint() 方法还没执行完毕,新一轮的命令又传递给内存了,解决方法是,把数据缓冲在内存中,当接受完全再整个输出
2.实现方法是,先设置一张“虚拟图片”接受数据,由于现在不能直接用 repaint() 调用 paint() 方法直接画,而 repaint() 调用 paint() 之前要先调用 update(),我们重写 update()