- 它有什么作用?
它将打印该组件,就好像您没有覆盖该
paintComponent方法一样。例如,如果您设置了背景色,则通常由您要扩展的类来绘制背景色。
- 我们什么时候需要使用它?
如果不在整个组件上绘画,则可以使用它。您不绘画的零件将“照亮”,这意味着您应该让超类绘画那些零件。例如,以背景色为例:如果仅在组件中间绘制一个圆圈,
super.paintComponent则将确保在圆圈周围绘制背景色。
如果您 确实
绘制了组件的整个区域,那么您将在任何super.paintComponent绘制的内容之上绘制,因此调用super.paintComponent没有意义。
- 通过在paintComponent()中编写它,给我们带来什么好处?
那是放置它的唯一合乎逻辑的地方。
paintComponent在应喷涂组件时调用,并且如上所述,如果您自己不喷涂整个组件,则需要
super.paintComponent在穿透的零件上进行喷涂。
文档中
paintComponent说,它相当不错:
[…]如果您没有调用super的实现,则必须使用opaque属性,即,如果该组件是不透明的,则必须使用非不透明的颜色完全填充背景。如果您不尊重不透明属性,则可能会看到视觉瑕疵。



