为什么Panel会覆盖其子组件,尽管它的paint方法被覆盖了?

时间:2014-06-07 00:42:58

标签: java awt

据我所知,paint的{​​{1}}方法负责在屏幕上呈现整个Panel。因此,如果我“删除”其Panel方法,则根本不应呈现任何内容。但是,在以下简单示例中,paint呈现其Panel,但我覆盖了其Button方法。为什么会这样? paint在哪里呈现?

Button

1 个答案:

答案 0 :(得分:0)

在Swing中,可以在不影响其父级的情况下绘制组件,这样做是因为它的效率更高。

重绘管理器决定需要实际重新绘制的内容,通过仅绘制那些组件来优化过程,并在可能的情况下,仅绘制需要绘制的组件的那些部分

考虑一下Painting in AWT and Swing,了解有关绘画如何在Swing中工作的更多细节

AWT组件和Swing组件的绘制方式也存在一些差异