我正在阅读这篇关于在AWT和Swing中绘画的文章,在"如何绘制轻量级元素"一节中有以下段落
值得注意的是,Container.update()的默认实现不使用递归对轻量后代调用update()或paint()。这意味着任何使用update()进行增量绘制的重量级容器子类都必须确保在必要时递归地重新绘制轻量级的后代。幸运的是,很少有重量级容器组件需要增量绘制,因此这个问题不会影响大多数程序。
请告诉我,在哪种情况下我需要递归调用update()或paint(),为什么?
不需要递归调用update()或paint()
如果你想绘制一个组件,你只需要:
component.repaint();
这将向RepaintManager
添加一个绘制请求来绘制组件,并且Swing将确保在调用paintChildren(...)
方法时绘制组件的子组件。