我正在阅读有关AWT和Swing绘画的this文章,其中有以下段落“轻量级如何绘制”
值得注意的是,Container.update()的默认实现不使用递归来调用轻量级后代上的update()或paint()。这意味着使用update()进行渐进式绘制的任何重量级Container子类必须确保在必要时以递归方式重新绘制轻量级后代。幸运的是,很少有重量级容器组件需要增量绘制,因此这个问题不会影响大多数程序。
请告诉我,在哪种情况下我需要对update()或paint()进行递归调用以及为什么?
答案 0 :(得分:1)
您不需要对update()或paint()进行递归调用。
如果要绘制组件,只需:
component.repaint();
这将向RepaintManager
添加绘制请求以绘制组件,Swing将确保在调用paintChildren(...)
方法时绘制组件子组件。有关详细信息,请参阅A Closer Look at the Paint Mechanism。