9.2.3 Applet的显示与刷新
Applet作为一个容器,可以在其上绘图,此时需要用到在java.awt.Component类中声明了3个用于组件显示和刷新的方法:paint()、repaint()和update()。
Applet的显示与刷新由一个独立线程控制,称为AWT线程。AWT线程的处理机制有两种情况。
1.自动执行paint方法绘图
如果程序中重写了Applet的paint方法,当浏览器运行时,AWT线程将自动在Applet上绘制图形;或者Applet内容被覆盖,当其他窗口关闭或移开时,AWT线程也会自动调用paint方法,重画曾被覆盖的部分。
2.调用重新绘图
程序中如果需要重新绘图,可以调用repaint方法,AWT线程会自动调用update方法,首先将当前画面清空,然后再调用paint方法重新绘制图形。
一般来说,浏览器能够很好地解决显示和刷新的问题。重写paint方法可以自动绘制我们希望的图形,在需要更新时调用repaint方法,而不需要重写repaint方法。至于update方法,一般情况下既不需要重写,也不需要调用。在动画设计中,如果仅重写paint方法,会产生抖动现象,为了消除抖动,需要重写update方法。