super.paintComponent(g)有什么作用?

有什么作用super.paintComponent(g)(特别是当我们将其放入paintComponent()方法中时)?令我惊讶的是,我之前没有人问过这个问题。

我在Java Graphics上挖了我的学校笔记,在这行代码中唯一提到的是"do not delete"

但是,这几周来,我一直在练习和使用Java

paintComponent()方法。到目前为止,我还没有将该行包含在我的代码中,并且一切似乎都运行良好(到目前为止)。所以..

  1. 它有什么作用?
  2. 我们什么时候需要使用它?
  3. 通过在paintComponent()中编写它,给我们带来什么好处?

回答:

  1. 它有什么作用?

它将打印该组件,就好像您没有覆盖该paintComponent方法一样。例如,如果您设置了背景色,则通常由您要扩展的类来绘制背景色。

  1. 我们什么时候需要使用它?

如果不在整个组件上绘画,则可以使用它。您不绘画的零件将“照亮”,这意味着您应该让超类绘画那些零件。例如,以背景色为例:如果仅在组件中间绘制一个圆圈,super.paintComponent则将确保在圆圈周围绘制背景色。

如果您 确实

绘制了组件的整个区域,那么您将在任何super.paintComponent绘制的内容之上绘制,因此调用super.paintComponent没有意义。

  1. 通过在paintComponent()中编写它,给我们带来什么好处?

那是放置它的唯一合乎逻辑的地方。paintComponent在应喷涂组件时调用,并且如上所述,如果您自己不喷涂整个组件,则需要super.paintComponent在穿透的零件上进行喷涂。

文档中paintComponent说,它相当不错:

[…]如果您没有调用super的实现,则必须使用opaque属性,即,如果该组件是不透明的,则必须使用非不透明的颜色完全填充背景。如果您不尊重不透明属性,则可能会看到视觉瑕疵。

以上是 super.paintComponent(g)有什么作用? 的全部内容, 来源链接: utcz.com/qa/425670.html

回到顶部