我刚刚开始使用java2d图形应用程序,在我的研究中,重绘正在重新绘制我们的图形,浪费了很多资源。但我想知道什么是重绘,以及如何高效、安全和快速地在画布上使用它来处理许多可移动的动态对象?
发布于 2013-07-19 11:28:41
我会先通读一下Performing Custom Painting和Painting in AWT and Swing
repaint向RepaintManager发出请求以绘制部分或全部组件。RepaintManager将决定绘制什么以及绘制多少,可能会将重新绘制请求合并到尽可能少的更新中(因此重复调用repaint实际上可能会减慢绘制进程)。
然后,RepaintManager将paint事件推送到事件分派线程上。这确保了在EDT上下文中处理paint事件。
在Swing中进行绘制时,有许多可能的解决方案可以提高速度和资源管理。
您可以考虑实现您自己的双缓冲策略,将您的更新绘制到离屏缓冲区,并在准备好后切换到活动缓冲区,该缓冲区将被绘制。
这意味着绘制很快,因为所有的工作都已经完成了(假设是在后台线程中)。
举个例子。
你也可以看看Passive vs. Active Rendering,但我很确定你知道自己在做什么……
https://stackoverflow.com/questions/17737555
复制相似问题