您现在的位置是:首页 > 文章详情

Java中用双缓冲技术消除闪烁

日期:2018-06-16点击:364

在Java编写具有连贯变化的窗口程序时,通常的办法是在子类中覆盖父类的paint(Graphics)方法,在方法中使用GUI函数实现窗口重绘的过程。连贯变换的窗口会不断地调用update(Graphics)函数,该函数自动的调用paint(Graphics)函数。这样就会出现闪烁的情况。

为了解决这一问题,可以应用双缓冲技术。可以通过截取上述过程,覆盖update(Graphics)函数,在内存中创建一个与窗口大小相同的图形,并获得该图形的图形上下文(Graphics),再将图片的图形上下文作为参数调用paint(Graphics)函数(paint(Graphics)中的GUI函数会在图片上画图),再在update(Graphics)函数调用drawImage函数将创建的图形直接画在窗口上。

 /** * 覆盖update方法,截取默认的调用过程 */ public void update(Graphics g) { Image buffer = createImage(this.getWidth(), this.getHeight());// 创建图形缓冲区 Graphics gOff = buffer.getGraphics();// 获取图形缓冲区的图形上下文 paint(gOff);// 用paint方法中编写的绘图过程对图形缓冲区绘图 gOff.dispose();// 释放图形上下文资源 g.drawImage(buffer, 0, 0, this);// 将图形缓冲区绘制到屏幕上 } 

原文链接:https://yq.aliyun.com/articles/643694
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章