我刚刚开始使用 java 2d 图形应用程序,在我的研究中,重绘正在重绘我们的图形,浪费了大量资源。但我想知道重绘是什么,以及如何有效地使用它,安全快速地为我的画布上的许多可移动动态对象穿线?
问问题
2212 次
1 回答
7
我将首先阅读在 AWT 和 Swing 中执行自定义绘画和绘画
repaint
请求RepaintManager
绘制组件的部分或全部。将RepaintManager
决定将绘制什么以及绘制多少,可能将重绘请求合并到尽可能少的更新中(因此重复调用repaint
实际上可能会减慢您的绘制过程)。
然后RepaintManager
将paint
事件推送到事件调度线程。这可确保在 EDT 的上下文中处理绘制事件。
在 Swing 中绘画时,有许多可能的解决方案可以提高速度和资源管理。
您可以考虑实施自己的双缓冲策略,将更新绘制到屏幕外缓冲区,并在准备好后切换到将被绘制的活动缓冲区。
这意味着绘制速度很快,因为所有工作都已经完成(大概在后台线程中)。
举些例子...
你也可以看看Passive vs. Active Rendering,但我很确定你知道你在做什么......
于 2013-07-19T03:28:40.780 回答