我的java思想006:使用双缓冲消除屏幕闪烁现象

来源:互联网 发布:java中extends的用法 编辑:程序博客网 时间:2024/05/20 18:01

使用双缓冲消除屏幕闪烁现象:

       屏幕闪烁的原因是:刷新重画的频率太快,paint没有来的急执行完,就刷新了,解决这种方法,就要重写窗口的update()方法,在其中新建一张图片,把整个屏幕的东西先画到图片上,然后在一次性贴到前面屏幕上。

public void update(Graphics g) {
  offScreenImage=this.createImage(GAME_WIDTH,         GAME_HEIGHT);//新建一副图片
  Graphics offScreeng=offScreenImage.getGraphics();
  Color c=offScreeng.getColor();
  offScreeng.setColor(Color.GREEN);//重画背景
  offScreeng.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);
  offScreeng.setColor(c);
  paint(offScreeng);
  g.drawImage(offScreenImage, 0, 0, null);//贴到前屏幕