我刚开始学习java不久,有时候学到的东西觉得好,用博客记录下来也是件不错的事情。
关于java中的双缓冲技术,教课书上是肯定没有提到的。前不久,刚看到Swing编程那块,然后基本的东西看了点,就想着既然看到了图形化界面的编程,我能不能也做一点小东西出来呢?抱着这样的想法,我就去想做点什么好,因为刚开始学,做太难的东西,肯定太累,而且,效果肯定也不佳,所以我就想做一个五子棋看看,因为五子棋比较简单(不考虑人机博弈问题),就开始尝试做了~做这个东西也没花太长的时间,在实现了落子后,就发现问题了,闪屏,我想都应该很熟悉,这个问题,我想任何人都是不能忍受的,但是,对于刚接触java的我来说,完全不知道该怎么做,怎么解决,怎么办?只能百度。。。度娘是学习的一个好地方~然后我就搜到了一种方法,叫双缓冲技术。
双缓冲技术,其实是这样,通过BufferedImage类来创建一个对象,也就是通过这个类来绘制图片,大小一般跟窗口大小一样把~
//创建一个BufferedImage对象bi
BufferedImage bi = new BufferedImage(600, 500, BufferedImage.TYPE_INT_ARGB);
接下来就是要把东西画在这张图片上
//创建一个画笔
Graphics g = bi.createGraphics();
就是通过g这个对象来画
那么所有的东西都已经画在了这张图片上,最后通过覆写paint方法,把这张图片画在界面上了~
//把图片画在界面上
scr.drawImage(bi, 0, 0, this);