为了绘制轻量级组件,需要递归更新或绘制是什么?

时间:2015-08-11 14:55:50

标签: java swing recursion awt paint

我正在阅读有关AWT和Swing绘画的this文章,其中有以下段落“轻量级如何绘制”

  

值得注意的是,Container.update()的默认实现不使用递归来调用轻量级后代上的update()或paint()。这意味着使用update()进行渐进式绘制的任何重量级Container子类必须确保在必要时以递归方式重新绘制轻量级后代。幸运的是,很少有重量级容器组件需要增量绘制,因此这个问题不会影响大多数程序。

请告诉我,在哪种情况下我需要对update()或paint()进行递归调用以及为什么?

1 个答案:

答案 0 :(得分:1)

您不需要对update()或paint()进行递归调用。

如果要绘制组件,只需:

component.repaint();

这将向RepaintManager添加绘制请求以绘制组件,Swing将确保在调用paintChildren(...)方法时绘制组件子组件。有关详细信息,请参阅A Closer Look at the Paint Mechanism