繁体   English   中英

是什么触发了对AWT中组件的paint()的隐式调用?

[英]What triggers an implicit call to paint() for a component in AWT?

我正在读这篇文章:

http://www.oracle.com/technetwork/java/painting-140037.html#triggers

它提到了以下内容:

在系统触发的绘制操作中,系统会请求组件呈现其内容,通常是出于以下原因之一:

  • 该组件首先在屏幕上可见。
  • 该组件已调整大小。
  • 该组件有损坏需要修复。 (例如,先前遮挡了组件的东西已经移动,并且组件的先前模糊部分已经暴露)。

第一点非常明显。 但是,在确定是否需要调用repaint()时,第二点和第三点会留下一些需要。 几乎任何我看到的例子都会在组件的图形属性发生变化时调用repaint()。 但是,有一些迹象表明,如果我更改某些属性,我不应该调用repaint()。 那些属性可能是什么?

如果有一个方法可以更改影响组件绘制方式的组件属性,那么该方法应该调用repaint(),而不是应用程序代码。 这应该是程序员隐藏的重绘。

我不明白你的意思是改变面板的剪裁。 剪切是在绘画过程中完成的事情。 因此,如果您有一个影响绘制方式的属性,则调用更改该属性的方法,该方法调用repaint(),如果裁剪区域已更改,则绘制例程将使用该信息做画。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM