java图形重绘方法实际上是如何工作的

pra*_*aka 1 java swing java-2d repaint graphics2d

我刚刚开始使用java 2d图形应用程序,在我的研究重绘是重绘我们的图形浪费了大量资源.但是我想知道什么重绘是什么,有效以及如何有效地使用它,为我画布上的许多可移动动态对象安全快速地线程?

Mad*_*mer 7

我将首先阅读AWT和Swing中的表演自定义绘画绘画

repaintRepaintManager向绘制部分或全部组件发出请求.该RepaintManager会决定什么,有多少会被着色,可以巩固重绘请求到尽可能少的更新,尽可能的(所以反复调用repaint实际上可以减缓你的烤漆工艺).

RepaintManager则推一个paint事件到事件调度线程.这确保了在EDT的上下文中处理paint事件.

在Swing中绘画时,有许多可能的解决方案可以提高速度和资源管理.

您可以考虑实施自己的双缓冲策略,将更新绘制到屏幕外缓冲区,准备好后,切换到活动缓冲区,它将被绘制.

这意味着油漆很快,因为所有工作已经完成(可能是在后台线程中).

举些例子...

你也可以看看被动与主动渲染,但我非常肯定你知道自己在做什么......