`
huyifan951124
  • 浏览: 82787 次
社区版块
存档分类
最新评论

java图像闪烁问题解决办法之双缓冲

    博客分类:
  • java
 
阅读更多

 

这是在做java的一个小项目叫坦克大战的时候遇到的一个问题,就是使用线程进行repaint()面板的时候总是出现闪烁的问题,由于repaint()要把所有图像都重新绘制一遍,因此出现了闪烁。
 那么怎么解决闪烁这个问题呢,我们就用到了双缓冲这一技巧(double buffer),我们首先创建一张基于原面板的一场图像,先将绘制图像的工作在这张图片上面完成,最后再将这张图片直接贴到面板上面,这样就不用直接在面板上进行绘制,因此闪烁现象也就消失了。
	@Override

	//在repaint()调用paint()方法之前,还会先调用update()方法

	private Image offScreenImage;
	public void update(Graphics g) {//g是前面屏幕的画笔
		if(offScreenImage == null)
			offScreenImage = this.createImage(WIDTH,HEIGHT);
		Graphics gOffScreen = offScreenImage.getGraphics();//gOffScreen是背后屏幕的画笔
		Color c = gOffScreen.getColor();
		gOffScreen.setColor(Color.GREEN);
		gOffScreen.fillRect(0, 0, WIDTH,HEIGHT);//画矩形	
		gOffScreen.setColor(c);
		paint(gOffScreen);//在背后屏幕画
		g.drawImage(offScreenImage, 0, 0, null);//将背后屏幕画的贴在前面屏幕上
	}



 
分享到:
评论

相关推荐

    双缓冲解决图像闪烁

    解决动画实现中出现的图像闪烁问题,罗列出各种解决方案,主要介绍双缓冲技术

    java双缓冲消除闪烁

    通过上述分析和示例,我们可以看出,双缓冲技术是解决Java游戏编程和多媒体动画处理中屏幕闪烁问题的有效手段。无论是选择在`update(Graphics g)`还是`paint(Graphics g)`中实现双缓冲,都可以显著改善动画效果,...

    Java双缓冲技术原理详细讲解例子

    Java双缓冲技术是一种提高图形界面性能的策略,尤其在绘制复杂的UI组件时,能有效避免闪烁现象,提供平滑的视觉体验。双缓冲的核心思想是将屏幕上的绘图操作先在一个临时缓冲区进行,待全部操作完成后再一次性将缓冲...

    Java双缓冲技术.doc

    总结来说,Java双缓冲技术是解决屏幕闪烁问题的关键。通过在内存中创建一个额外的缓冲区,可以先在缓冲区中完成所有绘制,然后再一次性将缓冲区内容绘制到屏幕上,从而避免了频繁的屏幕刷新,显著提升了动画的视觉...

    java画图(双缓冲)

    总结一下,双缓冲技术在Java中的应用可以显著提升GUI程序的画图性能和用户体验,防止画面闪烁,提供流畅的动画效果。通过重写`paintComponent`方法和利用`Graphics2D`对象,开发者可以实现自定义的画图功能,创建出...

    双缓冲方法解决屏幕刷新闪烁的问题(rar)

    为了解决这个问题,你采用了双缓冲技术,这是一种非常有效的解决方案。 双缓冲方法的核心思想是使用两个独立的内存缓冲区,一个用于绘制图像,另一个用于显示。当程序需要更新屏幕时,它首先在后台缓冲区进行所有的...

    Java双缓冲技术Java双缓冲技术

    关键词:Java双缓冲技术、屏幕闪烁、动画处理、Java游戏编程 一、问题的引入 在编写Java多媒体动画程序或用Java编写游戏程序的时候,我们得到的动画往往存在严重的闪烁(或图片断裂)。这种闪烁虽然不会给程序的...

    Java双缓冲技术原理详细讲解例子Java实用源码整理learns

    Java双缓冲技术是一种图形渲染优化策略,主要用于提高GUI(图形用户界面)的性能和减少屏幕闪烁,提升用户体验。在Java中,它主要应用于Swing和JavaFX等图形库。本教程将深入探讨Java双缓冲技术的原理,并通过实例...

    双缓冲解决屏幕闪烁问题

    在计算机图形学和GUI编程中,"双缓冲"是一种有效解决屏幕闪烁问题的技术。当程序在屏幕上绘制图形或更新界面时,如果没有采取适当的措施,可能会出现闪烁现象,这主要是因为屏幕刷新与数据更新不同步导致的。双缓冲...

    双缓冲区绘制线条,避免绘图闪烁

    总的来说,双缓冲区绘制是一种有效的解决图形绘制闪烁问题的方法,它提高了动态图形的视觉质量,增强了用户体验。在实际项目中,合理运用双缓冲技术,可以使得程序运行更加稳定,画面更加平滑,对于提升软件的整体...

    俄罗斯方块_带双缓冲绘图

    在计算机图形学中,双缓冲技术是一种优化图形绘制的方法,特别是在动态游戏或者实时渲染场景中,它可以显著减少图像闪烁,提高用户体验。本篇文章将深入探讨如何使用Java语言来实现一个带双缓冲绘图的俄罗斯方块游戏...

    Java双缓冲技术详细讲解

    通过上述代码示例可以看出,双缓冲技术有效地解决了绘制过程中的闪烁问题,提高了图形界面的绘制效率和流畅度。在实际开发中,可以根据具体需求调整缓冲图像的大小、绘制的内容以及刷新频率等参数,以达到最佳的视觉...

    java双缓冲技术————包含实例及技术详解,适合新手

    通过上述示例可以看出,Java中的双缓冲技术能够有效地解决在绘制过程中可能出现的闪烁问题。对于初学者来说,理解并掌握这项技术是非常重要的,因为它不仅可以提高程序的性能,还能提升用户的使用体验。希望本文能够...

    双缓冲例子

    为了解决这个问题,双缓冲技术应运而生。 双缓冲的工作原理如下: 1. 创建两个缓冲区:一个前端缓冲区和一个后端缓冲区。前端缓冲区是屏幕实际显示的内容,而后端缓冲区则用于绘制新图像。 2. 当需要更新图像时,...

    JAVA人物动画.rar_JAVA画人像_java人物动画_动漫人物java_双缓冲

    最后,"双缓冲"是解决屏幕闪烁问题的关键技术。在没有双缓冲的情况下,每次画面更新时,用户可能会看到未完成的中间状态,导致闪烁。双缓冲的工作原理是在后台创建一个临时图像缓冲区,所有绘图操作都在这个缓冲区...

    双缓冲技术教程加源码.rar

    它旨在解决屏幕闪烁和图像撕裂问题,提供更流畅的视觉体验。本教程结合源码,将深入讲解双缓冲的工作原理及其应用。 1. **双缓冲的基本概念** 双缓冲是一种图形渲染策略,它涉及到两个帧缓冲区:一个用于绘制新...

    Java双缓冲技术.pdf

    Java 双缓冲技术是一种在图形渲染中用于减少屏幕闪烁和提高图像质量的策略。在Java游戏编程和多媒体动画处理中,为了避免用户界面的不连贯更新和闪烁现象,通常会采用双缓冲技术。屏幕闪烁主要源于图形的逐帧刷新...

    双缓冲试验示例(基础学习)

    在Java编程语言中,双缓冲技术是一种优化图形绘制性能的方法,尤其在处理复杂的2D图形时,能够显著减少闪烁和不连续更新的问题。本实验旨在介绍如何在Java中实现双缓冲,以创建平滑、流畅的图形显示效果。通过这个...

    利用双缓冲的方法解决界面屏闪

    在提供的压缩文件"用双缓冲解决闪烁问题"中,可能包含了使用特定编程语言或库实现双缓冲的示例代码,供开发者参考学习。 总之,双缓冲技术是解决界面屏闪问题的有效手段,通过后台绘图和一次性刷新,它极大地提升了...

    俄罗斯方块1.0.1(双缓冲绘图)

    双缓冲绘图,是图形编程领域中常用的一种优化手段,主要目的是解决屏幕闪烁问题。在单缓冲系统中,每当图形更新时,直接在屏幕上绘制新的图像,这可能导致用户看到不完整的画面或闪烁效果。而双缓冲机制则在后台创建...

Global site tag (gtag.js) - Google Analytics