Java中的paint()和repaint()

问题描述 投票:19回答:3

我花了最近两个小时浏览和阅读这些方法和Graphics类,也许我很蠢,哈哈,但我只是不理解它们。它们适用于什么?我知道他们应该在屏幕上重绘或更新组件,但我从未理解为什么这是必需的(我是新手)。例如,如果我在屏幕上移动JLabel,则调用setLocation()会将其移动得很好。这是不需要repaint()的场景吗?它在哪些场景中有用,为什么?

如果您认为这是一个可以使用搜索功能解决的问题,请道歉,但无论出于何种原因,我都没有得到它。

java paint repaint
3个回答
21
投票

Difference between Paint() and Repaint() method

涂料():

此方法包含绘制此组件的说明。实际上,在Swing中,你应该改变paintComponent()而不是paint(),因为paint调用paintBorder(),paintComponent()和paintChildren()。你不应该直接调用这个方法,你应该调用repaint()。

重绘():

此方法无法覆盖。它控制update() - > paint()循环。您应该调用此方法来获取重新绘制自身的组件。如果您已经做了任何改变组件外观的事情,而不是它的大小(比如改变颜色,动画等),那么请调用此方法。


4
投票

paint()方法支持通过Graphics对象进行绘制。

repaint()方法用于使AWT绘制线程调用paint()


0
投票

除非您需要在组件上呈现特定内容,否则不必调用重绘。 “特定的东西”是指您正在使用的窗口工具包内部未提供的任何内容。

© www.soinside.com 2019 - 2024. All rights reserved.