【发布时间】:2013-04-12 17:15:57
【问题描述】:
谁能简单地告诉我java小程序中的paint()方法是如何工作的?比如,什么时候调用,怎么调用?因为有时它会被多次调用,我不知道这是怎么发生的。
【问题讨论】:
-
我没有具体的代码,我只是想知道它是如何工作的。它取决于代码吗?
谁能简单地告诉我java小程序中的paint()方法是如何工作的?比如,什么时候调用,怎么调用?因为有时它会被多次调用,我不知道这是怎么发生的。
【问题讨论】:
要了解这一点,您需要了解 Applet Lifecycle..
小程序的生命周期:
Applet 类中的四个方法为您提供了构建任何重要小程序的框架:
1) init:此方法适用于您的小程序所需的任何初始化。处理完applet标签内的param标签后调用。
2) start:该方法在浏览器调用init方法后自动调用。每当用户在离开到其他页面后返回到包含小程序的页面时也会调用它。
3) stop:当用户离开小程序所在的页面时,会自动调用此方法。因此,它可以在同一个小程序中重复调用。
4)destroy:该方法只在浏览器正常关闭时调用。因为 applet 是用来存放在 HTML 页面上的,所以通常不应在用户离开包含 applet 的页面后留下资源。
5) paint:在 start() 方法之后立即调用,也可以在 applet 需要在浏览器中重新绘制自身的任何时候调用。 paint() 方法实际上继承自 java.awt。
第二种情况,产生paint()调用的时候是程序调用repaint()或update()的时候。 repaint() 方法是由程序调用来进行绘图的方法。它们是此方法的 4 个版本,但通常使用没有参数的版本。通过 repaint() 进行绘制通常是为了响应用户输入。
repaint() ==> update() ==(通常调用)==>paint()
repaint() 不直接调用paint()。它安排对中间方法 update() 的调用。最后,update() 调用 paint()(除非你覆盖 update)。
【讨论】: