编程词典
明日图书
明日软件
用户注册
用户登录
站内
  当前位置:编程词典服务网 >> 编程词典社区论坛 >> 解决绘图时出现屏幕闪耀...
  · 解决绘图时出现屏幕闪耀的问题

用户:  明日科技
发帖:  417 篇
作品:  1 个
回复:  2 篇
技术分:  805 分
等级:  
注册:  2009-09-07 06:37:23



发表于:2010-06-10 16:06:37
          楼主

解决绘图时出现屏幕闪耀的问题:

在使用Canvas类的子类绘制图像时,经常会出现屏幕闪耀的问题,为此首先应该了解出现屏幕闪耀的原因,然后根据原因解决屏幕闪耀问题。

1.原因:

每次重绘画布对象时,改变了画布对象的大小或调用了repaint()方法,程序都会调用update()方法,调用update()方法时程序首先清除画布上原有内容,然后再调用paint()方法重新绘制图像,这样就出现了屏幕闪耀问题。

2.解决问题的方法:

Canvas类的子类中重写update()方法,并在update()方法中调用paint()方法,使调用update()方法时不清除画布上原有的内容,而是直接调用paint()方法绘制图像,这样就不会出现屏幕闪耀了。

import java.awt.Canvas;

import java.awt.Graphics;

import java.awt.Image;

/**

 * @author zhang zhen kun

 * 创建画布类

 */

public class DrawPictureCanvas extends Canvas {

        private Image image=null;                                   // 定义Image对象的引用

        public DrawPictureCanvas(Image image){

                super();

                this.image=image;                                        // 为成员变量赋值

        }

        public void setImage(){

                this.image=image;                                        // 为成员变量赋值

        }

        /*

         * 重写paint()方法,在画布上绘制图像

         */

        public void paint(Graphics g){

                g.drawImage(image, 0,0,null);            // 在画布上绘制图像

        }

        /*

         * 重写update()方法,这样可以解决屏幕闪耀的问题

         */

        public void update(Graphics g){

                paint(g);                                                      // 调用paint方法

        }

}

本帖赏分:0 分   回复数:0 篇     
修改   删除   引用   回复
该帖暂无回复!
吉林省明日科技有限公司提供技术支持. 
Copyright © 1999-2008 吉林省明日科技有限公司. 吉ICP备10002740
当前时区 GMT+8, 今天是 
刷新页面 - 关于我们 - 设为首页