super.paintComponent(g)有什么作用?
有什么作用super.paintComponent(g)
(特别是当我们将其放入paintComponent()方法中时)?令我惊讶的是,我之前没有人问过这个问题。
我在Java Graphics上挖了我的学校笔记,在这行代码中唯一提到的是"do not delete"
。
但是,这几周来,我一直在练习和使用Java
paintComponent()方法。到目前为止,我还没有将该行包含在我的代码中,并且一切似乎都运行良好(到目前为止)。所以..
- 它有什么作用?
- 我们什么时候需要使用它?
- 通过在paintComponent()中编写它,给我们带来什么好处?
回答:
- 它有什么作用?
它将打印该组件,就好像您没有覆盖该paintComponent
方法一样。例如,如果您设置了背景色,则通常由您要扩展的类来绘制背景色。
- 我们什么时候需要使用它?
如果不在整个组件上绘画,则可以使用它。您不绘画的零件将“照亮”,这意味着您应该让超类绘画那些零件。例如,以背景色为例:如果仅在组件中间绘制一个圆圈,super.paintComponent
则将确保在圆圈周围绘制背景色。
如果您 确实
绘制了组件的整个区域,那么您将在任何super.paintComponent绘制的内容之上绘制,因此调用super.paintComponent没有意义。
- 通过在paintComponent()中编写它,给我们带来什么好处?
那是放置它的唯一合乎逻辑的地方。paintComponent
在应喷涂组件时调用,并且如上所述,如果您自己不喷涂整个组件,则需要super.paintComponent
在穿透的零件上进行喷涂。
文档中paintComponent
说,它相当不错:
[…]如果您没有调用super的实现,则必须使用opaque属性,即,如果该组件是不透明的,则必须使用非不透明的颜色完全填充背景。如果您不尊重不透明属性,则可能会看到视觉瑕疵。
以上是 super.paintComponent(g)有什么作用? 的全部内容, 来源链接: utcz.com/qa/425670.html