1

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

4

1 回答 1

7

我将首先阅读在 AWT 和 Swing 中执行自定义绘画和绘画

repaint请求RepaintManager绘制组件的部分或全部。将RepaintManager决定将绘制什么以及绘制多少,可能将重绘请求合并到尽可能少的更新中(因此重复调用repaint实际上可能会减慢您的绘制过程)。

然后RepaintManagerpaint事件推送到事件调度线程。这可确保在 EDT 的上下文中处理绘制事件。

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

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

这意味着绘制速度很快,因为所有工作都已经完成(大概在后台线程中)。

举些例子...

你也可以看看Passive vs. Active Rendering,但我很确定你知道你在做什么......

于 2013-07-19T03:28:40.780 回答