Java中的paint()和repaint()

Dan*_*iel 20 java paint repaint

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

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

Siv*_*ran 22

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

涂料():

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

重绘():

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


小智 5

paint()方法支持通过Graphics对象绘画。

repaint()方法用于使paint()AWT绘画线程调用它。


ble*_*end 0

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