我可能在过去的两个小时里浏览和阅读了这些方法和 Graphics 类,也许我很愚蠢,哈哈,但我只是不理解它们。它们是干什么用的?我知道他们应该在屏幕上重绘或更新组件,但我从来不明白为什么需要这样做(我是新手)。例如,如果我在屏幕上移动 JLabel,调用 setLocation() 就可以很好地移动它。这是不需要 repaint() 的场景吗?它在哪些情况下有用,为什么?
抱歉,如果您觉得这是一个可以使用搜索功能解决的问题,但无论出于何种原因,我都没有得到它。
此方法包含绘制此组件的指令。实际上,在 Swing 中,您应该更改paintComponent() 而不是paint(),因为paint 调用paintBorder()、paintComponent() 和paintChildren()。你不应该直接调用这个方法,你应该调用 repaint() 。
此方法不能被覆盖。它控制 update() -> paint() 循环。您应该调用此方法来让组件重新绘制自身。如果您对组件的外观做了任何更改,但没有更改其大小(例如更改颜色、动画等),请调用此方法。
该paint()
方法支持通过 Graphics 对象进行绘画。
该repaint()
方法用于导致paint()
被 AWT 绘制线程调用。
除非您需要将特定内容渲染到组件上,否则无需调用 repaint。“特定的东西”是指您正在使用的窗口工具包内部未提供的任何东西。