回 帖 发 新 帖 刷新版面

主题:小妹初学java请各位指教 有关repaint()和paintCompenent()的问题

请问repaint()的作用是什么?
请问paintComponent()到底是什么时候自动调用

回复列表 (共3个回复)

沙发

repaint
public void repaint(Rectangle r)如果要显示该组件,则将指定的区域添加到脏区列表。调度完当前所有未完成的事件后重新绘制该组件。 

参数:
r - 包含脏区的 Rectangle


paintComponent
protected void paintComponent(Graphics g)如果 UI 委托为非 null,则调用该 UI 委托的 paint 方法。向该委托传递 Graphics 对象的副本,以保护其余的 paint 代码免遭不可取消的更改(例如 Graphics.translate)。 
如果在子类中重写此方法,则不应该对传入到 Graphics 中的内容进行永久更改。例如,不应更改剪裁矩形 或修改转换。如果需要进行这些操作,您会发现根据传入的 Graphics 创建一个新 Graphics 并操作它会更容易一些。另外,如果不调用超类的实现,则必须遵守不透明属性,也就是如果此组件是不透明的,则必须以透明的颜色完全填充背景。如果不遵守不透明属性,则很可能看到可视化的人为内容。 

传入的 Graphics 对象可能具有与该对象上已安装的标识转换所不同的转换。在这种情况下,如果多次应用其他转换,则可能得到不可预料的结果。 


参数:
g - 要保护的 Graphics 对象

板凳

repaint可以强制调用paint方法。这在一些涉及到绘图方法的时候会用到。

3 楼

To LZ:

Can you read javadoc?
If you need an example, you can do a google search on "Java repaint/paintComponent example"

all answers to your need are on your finger tips.

Thanks!

我来回复

您尚未登录,请登录后再回复。点此登录或注册