当前位置: 首页 > 知识库问答 >
问题:

Super.PaintComponent(g)做什么?

韦寒
2023-03-14

super.paintComponent(g)做什么(特别是当我们将它放在paintComponent()方法中时)?我很惊讶以前没有人问过这个问题。

我翻出我关于Java图形的学校笔记,它在这行代码上唯一提到的是“不要删除”

然而,这几周我一直在练习和学习Java的paintComponent()方法。到目前为止,我还没有将这一行包含在我的代码中,而且一切似乎都运行得很好(到目前为止)。所以..

问题:

  1. 它做什么?
  2. 何时需要使用它?
  3. 在paintComponent()中编写它给我们带来了什么好处?

共有1个答案

阎安邦
2023-03-14
  1. 它做什么?

它打印组件,就像您没有重写PaintComponent方法一样。例如,如果设置了背景颜色,则通常由要扩展的类绘制。

如果你不在整个组件上涂漆,你就会使用它。你不涂的部分会“发光透”,这意味着你应该让超级类涂那些部分。与背景色的例子一样:如果您只是在组件的中间画了一个圆,super.paintcomponent将确保背景色是围绕着这个圆画的。

如果您确实绘制了组件的整个区域,那么您将在Super.PaintComponent绘制的任何内容上进行绘制,因此调用Super.PaintComponent是没有意义的。

这是唯一合乎逻辑的地方。PaintComponent是在应该对组件进行涂装时调用的,并且,如上所述,如果您没有自己对整个组件进行涂装,则需要super.PaintComponent在发光透光的部分进行涂装。

PaintComponent的文档很好地说明了这一点:

[...]如果不调用super的实现,则必须遵守不透明属性,也就是说,如果该组件是不透明的,则必须完全以非不透明的颜色填充背景。如果您不尊重不透明属性,您可能会看到可视工件。

 类似资料:
  • 问题内容: 有什么作用(特别是当我们将其放入paintComponent()方法中时)?令我惊讶的是,我之前没有人问过这个问题。 我在Java Graphics上挖了我的学校笔记,在这行代码中唯一提到的是。 但是,这几周来,我一直在练习和使用Java paintComponent()方法。到目前为止,我还没有将该行包含在我的代码中,并且一切似乎都运行良好(到目前为止)。所以.. 问题: 它有什么作

  • 问题内容: 我对几件事有些困惑: 示例代码,显示了我的问题,这是无法编译的 我创建了一个全局对象, 并在其中绘制了内容 ,但我没有在游戏循环内调用 它,这样做是否是一种好习惯? 我应该在循环和函数内部使用吗? 另一件事,如何正常工作?,因为尝试删除此行代码,因此没有任何反应。 我了解java docs的dispose()的工作方式 , 但是我没有注意到dispose()与否的任何区别。 我的程序运

  • 有人能解释一下的用途吗,是Applets或awt或swings或Java中的变量。 我做过研究,发现它是用来覆盖的,但是这个覆盖有什么用呢? 我是初学者。如果可能的话,你能解释一下和

  • 当在子类中重写它时,调用油漆组件方法将其定义为超类的重要性是什么。我无法理解原因。例如:请参阅下面的代码以显示填充的弧:

  • 问题内容: 我正在阅读一本有关html开发的书(我还比较陌生),尽管该书一个月前(2011年11月)才刚刚出版,但作者是一位经验丰富的编码人员,也许可以用于行动形式是老派? 因为我试图获得示例代码的要点,但是尽管进行了搜索,却找不到解释。 在Google,SO和www.w3schools.com上。 有人知道该动作对表格意味着什么吗? 问题答案: 动作通常指定提交表单的文件/页面(使用方法参数中所

  • 问题内容: 为什么我们需要特定于数据库的功能,例如mysql_real_escape_string()?addlashes()不能做什么? 暂时忽略了参数化查询的高级替代方案,是一个仅使用addlashes()的web应用仍然容易受到SQL注入的攻击,如果是,怎么办? 问题答案: 当处理多字节编码的字符串时,加号通常不够好。