paint() 和 repaint() in JavaPaint() 和 Repaint() 方法之间的区别

2022-09-01 23:23:49

在过去的两个小时里,我一直在浏览和阅读这些方法和图形类,也许我很愚蠢,哈哈,但我只是不理解它们。他们是干什么的?我知道他们应该在屏幕上重绘或更新组件,但我一直不明白为什么需要这样做(我是新手)。例如,如果我在屏幕上移动一个JLabel,那么对setLocation()的调用就可以很好地移动它。这是不需要repaint()的情况吗?它在哪些情况下有用,为什么?

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


答案 1

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

油漆():

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

重绘():

此方法无法重写。它控制 update() -> paint() 循环。应调用此方法以使组件重新绘制自身。如果您已经做了任何事情来更改组件的外观,但没有更改其大小(例如更改颜色,动画等),则调用此方法。


答案 2

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

该方法用于导致由 AWT 绘制线程调用。repaint()paint()


推荐