双缓冲解决Java绘图严重闪烁
来源:互联网 发布:亿次元 淘宝 编辑:程序博客网 时间:2024/04/30 00:19
在编写一个Java小游戏时,需要画出一个坦克,于是在坦克这个类中创建了一个内部类实现Runnable接口来启动一个线程,在线程中调用repaint()方法不断重画,线程的睡眠时间设为50毫秒,代码如下:
结果发现,运行时闪烁现象特别明显,更改睡眠时间为100秒,1000秒也不行,延迟非常严重,而且仍然闪烁。网上查到原来是因为repaint()不断调用paint()方法引起的,因为显示器的刷新频率高于程序的频率,paint()还没执行完就被刷新,解决的办法是使用双缓冲技术,在Frame的背后画一张虚拟的图片,把你要画的东西画在这个虚拟的图片上,然后把虚拟的图片再画在Frame中,这种实现方法被称作双缓冲。这种方法果然解决了闪烁的问题,代码如下:
图像再也不闪烁啦!
0 0
- 双缓冲解决Java绘图严重闪烁
- 如何使用 GDI+ 双缓冲 解决绘图闪烁问题
- 使用 GDI+ 双缓冲 解决绘图闪烁问题
- VC++绘图时,利用双缓冲解决屏幕闪烁
- MFC双缓冲绘图解决界面闪烁问题
- 双缓冲绘图,防止闪烁
- java双缓冲解决屏幕闪烁
- 用双缓冲进行绘图可解决在VC中绘图时的闪烁现象[ 转]
- 双缓冲实现无闪烁绘图
- 论坛所得《双缓冲绘图--防止闪烁》
- 双缓冲绘图 (避免闪烁)
- 用了双缓冲绘图还闪烁
- android双缓冲绘图,避免屏幕闪烁
- c++双缓冲技术绘图避免闪烁
- 双缓冲解决图象闪烁
- java-----五子棋小游戏(四)-----解决闪烁问题(双缓冲)
- Java Swing 双缓冲技术解决图像闪烁问题
- JAVA实现双缓冲-----解决界面闪烁问题
- Java判断相等(==和equals()方法)
- 清理windows下面的垃圾
- Centos修炼----->Centos7之安装Python3.5
- Struts2的值栈详解
- Leetcode Permutations II
- 双缓冲解决Java绘图严重闪烁
- CLHLock
- Cyclic Nacklace
- Mac常用工具
- android混合动画实现
- Java 用Servlet+JDBC 结合Sqlsever 实现用户注册
- 独立日记 2015年12月26日 day5 有限状态机 FSM
- [iOS程序启动与运转]- RunLoop个人小结
- 北京市街へ