小编给大家分享一下Java如何实现双缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
import java.awt.*; import java.applet.*; public class HelloWorld extends Applet { private Image imgBuf; private Graphics gBuf; Thread lithread=null; private int i=0; public void init() { imgBuf=createImage(getSize().width,getSize().height); gBuf=imgBuf.getGraphics(); gBuf.setColor(Color.black); gBuf.fillRect(0,0,getSize().width,getSize().height); gBuf.setColor(Color.white); gBuf.drawLine(0,10,getSize().width-1,10); gBuf.drawLine(0,30,getSize().width-1,30); gBuf.drawLine(0,50,getSize().width-1,50); gBuf.drawLine(0,70,getSize().width-1,70); gBuf.drawLine(0,90,getSize().width-1,90); gBuf.drawLine(0,110,getSize().width-1,110); gBuf.drawLine(0,130,getSize().width-1,130); gBuf.setColor(Color.red); gBuf.drawRect(0,0,getSize().width-1,getSize().height-1); } public void start() { if(lithread==null) { lithread=new Thread(); lithread.start(); } } public void stop() { lithread=null; } public void paint(Graphics g) { g.drawImage(imgBuf,0,0,this); gBuf.setColor(Color.black); gBuf.fillRect(0,0,getSize().width,getSize().height); gBuf.setColor(Color.white); gBuf.drawLine(0,10,getSize().width-1,10); gBuf.drawLine(0,30,getSize().width-1,30); gBuf.drawLine(0,50,getSize().width-1,50); gBuf.drawLine(0,70,getSize().width-1,70); gBuf.drawLine(0,90,getSize().width-1,90); gBuf.drawLine(0,110,getSize().width-1,110); gBuf.drawLine(0,130,getSize().width-1,130); gBuf.setColor(Color.green); gBuf.drawRect(50-i,50-i,200-i,100-i); try { lithread.sleep(1000); } catch(InterruptedException e) { } i++; repaint(); } public void update(Graphics g) { paint(g); } }
双缓存技术:
图像闪烁的根本原因是当一幅图像显示完需要花下一幅时,首先将屏幕用背景色清除,然后再画下一幅,因此人们能看到背景色因此出现闪烁.
当一幅图像在显示的时候,下一幅要显示的图像已经在内存中写好,因此,当需要下一幅时可以直接通过函数从内存中一次性独到显示区,由于从内存中读出速度很快,所以看不到闪烁.
以上是“Java如何实现双缓存”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。