Java paint方法执行次数的问题(50分)

  • 主题发起人 主题发起人 gotoworld
  • 开始时间 开始时间
G

gotoworld

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么paintcount的计数在每次重启时会自加2,而不是自加1呢?
import java.applet.*;
import java.awt.*;
public class Example7_2 extends Applet
{ int initcount = 0, startcount = 0, stopcount = 0, destroycount = 0, paintcount = 0;
public void init()
{ initcount = initcount + 1;}
public void start()
{ startcount++;}
public void stop()
{ stopcount++;}
public void destroy()
{destroycount++;}
public void paint(Graphics g)
{ paintcount++;
g.drawString("initcount = "+ initcount, 10, 20);
g.drawString("startcount = "+ startcount, 10, 40);
g.drawString("stopcount = "+ stopcount, 10, 60);
g.drawString("destroycount = "+ destroycount, 10, 80);
g.drawString("paintcount = "+ paintcount, 10, 100);
}
}
 
可能在你init中调用了一次pain,
 
照理说,应该是1。
我试过了的。
不过可能你的Applet容器窗口在启动时有发生重写窗口事件,
(比如窗口从最小化到最大化;在比如窗口大小变化),这时
会调用一次paint。
 
paint方法是系统调用的,它的次数不受程序控制。
所以界面的内容、位置、大小的任何改变都触发paint方法的调用。
init方法执行完后调用一次paint,
界面显示出来后,系统会再调用一次paint.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
843
import
I
后退
顶部