Java中的paint()和repaint()

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

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

Paint()和Repaint()方法之间的区别

涂料():

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

重绘():

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

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

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

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