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

时间:2013-07-19 03:17:31

标签: java swing java-2d graphics2d repaint

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

1 个答案:

答案 0 :(得分:7)

我首先阅读Performing Custom PaintingPainting in AWT and Swing

repaintRepaintManager发出请求,要求绘制部分或全部组件。 RepaintManager将决定绘制的内容和绘制内容,可能会将重绘请求合并到尽可能少的更新中(因此重复调用repaint实际上可能会减慢绘制过程。)

RepaintManager然后将paint事件推送到事件调度线程。这确保了在EDT的上下文中处理paint事件。

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

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

这意味着绘画很快,因为所有工作都已完成(可能是在后台线程中)。

例如......

你也可以看看Passive vs. Active Rendering,但我非常肯定你知道自己在做些什么......