"是init()在小应用程序载入后仅执行一次,destroy()在关闭浏览器时执行一次"
书上说的没错。
“back、forward离开时又总是先调用stop()接着调用destroy(),”是小应用程序被重新载入了。
一些页面连接例如<A>或者前进,回退,IE都会调用load,unload之类的事件,Applet会被重新加载,卸载。
书上说的没错。
“back、forward离开时又总是先调用stop()接着调用destroy(),”是小应用程序被重新载入了。
一些页面连接例如<A>或者前进,回退,IE都会调用load,unload之类的事件,Applet会被重新加载,卸载。
解决方案 »
- 大二,开始学java,新手问题(希望长期交流)
- 用Scanner输入数据,如何解决数据类型不匹配的异常
- 关于异常的疑问
- 请用面向对象思想分析 GG,MM ,人妖的关系。
- 我扩展一个JFrame类,不想通过getContentPane()来获得内容框,而是用rootPane.contentPane.add()来添加JPanel,却不可以通过编译,怎么回事呀
- struct中国际化配置文件中,中方乱码怎么处理
- 如何运用BigDecimal的divide方法?
- java List containsAll方法的重写改怎么做?
- throws Exception和throws IOException问题
- java服务器问题
- 在一个应用中允许存在两个守护线程吗?
- 怎样把一个对象拷贝到另一个对象?
"destroy()仅在关闭浏览器时执行一次“这句话肯定是错的啦。
当页面被最小化时、或失去焦点时,执行stop();
当页面恢复获得焦点时,执行start();
当页面被终止(关闭浏览器、转到其它页面等),执行stop()、destory();
import java.awt.*;
import java.applet.Applet;
public class AppletLife extends Applet{
public static int colors=10;
Font font;
public void init() {
System.out.println("Now init");
font = new java.awt.Font("TimesRoman", Font.PLAIN, 36);
}
public void start() {
System.out.println("Now start");
}
public void stop() {
System.out.println("Now stop");
}
public void paint(Graphics g) {
int red = (int)(Math.random() * 50);
int green = (int)(Math.random() * 50);
int blue = (int)(Math.random() * 256);
g.setFont(font);
g.setColor(new Color((red +colors * 30) % 256, (green + colors / 3) % 256, blue));
colors=colors+10;
System.out.println("Now paint");
g.drawString("hello",30,30);
}
public void destroy() {
System.out.println("Now destroy");
}
}
只有applet还在IE上,你的鼠标点了其他的窗口,applet才知是stop,不destory!
焦点回来后,applet就start了!