Rex Mao

分享java技术与生活

java画图程序技术小结(二) 重绘与双缓冲

双缓冲,我记得有两种方法,一种是两个图象,一个前台Graphics,一个后台Graphics,画图时在后台画,画好了,再用前台的Graphics画后台Graphics的图片。另一种是有两个或多个图象,不分前后台,显示一个图象时,另外的在画,图象循环使用(c语言时用过)。
         给出第一种的java实现
         a、  定义后台图象BufferedImage offScreenImg=offScreenImg = new BufferedImage(this.maxX, this.maxY,
                                     BufferedImage.TYPE_INT_RGB);

         b、  得到后台的Graphics实例

    Graphics2D offScreenG;

        offScreenG = offScreenImg.createGraphics();

         c、  覆盖paintComponent方法

     public void paintComponent(Graphics g) {

          super.paintComponent(g);

        g.drawImage(offScreenImg, 0, 0, this.maxX, this.maxY, this);

          }

        绘制时用后台Graphics,绘制好后,调用repaint(),将offScreenImg绘到面板上。


posted on 2007-04-23 21:47 Rex Mao 阅读(4390) 评论(1)  编辑  收藏 所属分类: 技术

评论

# re: java画图程序技术小结(二) 重绘与双缓冲 2008-09-05 00:31 I appreciate you

尽管我不是搞Java,不过在C#中的双缓冲跟Java还是很类似的。
就是在内存中创建出来一个Graphic的对象,然后绘好图形,最终再用所谓的前台的Graphic把这个内存中绘好的图像paint出来。这样就减少闪烁了。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: