JAVA [ Applet在IE和FF下不同表现]

Applet运行状态

 Applet类中的四种基本方法用来控制其运行状态:init()start()stop()destroy()

  init()方法

  这个方法主要是为Applet的正常运行做一些初始化工作。当一个Applet被系统调用时,系统首先调用的就是该方法。通常可以在该方法中完成从网页向Applet传递参数,添加用户界面的基本组件等操作。

  start()方法

  系统在调用完init()方法之后,将自动调用start()方法。而且,每当用户离开包含该Applet的主页后又再返回时,系统又会再执行一遍start()方法。这就意味着start()方法可以被多次执行,而不像init()方法。因此,可把只希望执行一遍的代码放在init()方法中。可以在start()方法中开始一个线程,如继续一个动画、声音等。

  stop()方法

  这个方法在用户离开Applet所在页面时执行,因此,它也是可以被多次执行的。它使你可以在用户并不注意Applet的时候,停止一些耗用系统资源的工作以免影响系统的运行速度,且并不需要人为地去调用该方法。如果Applet中不包含动画、声音等程序,通常也不必实现该方法。

  destroy()方法

与对象的finalize()方法不同,Java在浏览器关闭的时候才调用该方法Applet是嵌在HTML文件中的,所以destroty()方法不关心何时Applet被关闭,它在浏览器关闭的时候自动执行。在destroy()方法中一般可以要求收回占用的非内存独立资源。(如果在Applet仍在运行时浏览器被关闭,系统将先执行stop()方法,再执行destroy()方法。


import java.applet.Applet;

import java.awt.Graphics;

import netscape.javascript.JSObject;

public class jsApplet extends Applet {

    static int staticVar=0;//静态变量   

    int globalVar = 100; //全局变量

    public jsApplet() {

       super();

       System.out.print("初始Applet!");

       System.out.println("\tstaticVar = " + staticVar + "; globalVar = " + globalVar);

    }

    public void init() {

       System.out.print("启动Applet!");   

       staticVar++;globalVar++;

       System.out.println("\tstaticVar = " + staticVar + "; globalVar = " + globalVar);

       System.out.println(getParameter("p0") + " : " + getParameter("p1"));   }

    public void start() {

       System.out.print("运行Applet!");

       staticVar++;globalVar++;

       System.out.println("\tstaticVar = " + staticVar + "; globalVar = " + globalVar);

    }

    public void stop() {

       System.out.print("停止Applet!");

       staticVar++;globalVar++;

       System.out.println("\tstaticVar = " + staticVar + "; globalVar = " + globalVar);

    }  

    public void destroy() {

       System.out.print("摧毁Applet!");

       staticVar++;globalVar++;

       System.out.println("\tstaticVar = " + staticVar + "; globalVar = " + globalVar);

    }

    public String getAppletInfo() {

       return "This is my default applet created by Eclipse";   

    }

    public void paint(Graphics g){

       System.out.println("绘画Applet!");

       g.drawString( "绘画Applet!" , 10, 40);   

   }

    public void setParameter(String name, String value){

       System.out.println("[" + name + "] = " + value );  

    }

}

启动Applet==========

 

初始Applet! staticVar = 0; globalVar = 100

启动Applet! staticVar = 1; globalVar = 101

null : null

运行Applet! staticVar = 2; globalVar = 102

绘画Applet!

=====如果点击其他的运行程序,然后回复到applet窗口,则会再次执行“绘画Applet!”;

如果最小化并且还原Applet,则会启动它的stopstart方法========

 

初始Applet! staticVar = 0; globalVar = 100

启动Applet! staticVar = 1; globalVar = 101

null : null

运行Applet! staticVar = 2; globalVar = 102

绘画Applet!

绘画Applet!

停止Applet! staticVar = 3; globalVar = 103

运行Applet! staticVar = 4; globalVar = 104

绘画Applet!

======

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>My applet 'jsApplet' starting page</title>

  </head>

  <body>

    <script type="text/javascript">

       //This part is before the Applet init!

        //document.jsApplet.setParameter("Timer","beforeStart");

    </script>

    <applet codebase="applet/"

            code="jsApplet.class"

            name="jsApplet"

            id="jsApplet"

            width="320"

            align="top"

            height="240"

            vspace="50"

            hspace="50"

            alt="无法运行时显示此对话框"

            MAYSCRIPT>

          <param name="p0" value="name">

          <param name="p1" value="Applet">

    </applet>

    <script type="text/javascript">

    document.jsApplet.setParameter("Timer","afterEndApplet");

    document.applets[0].setParameter("title2","jesseShen");

    document.getElementByIdx_x("jsApplet").setParameter("title3","Siting");

    document.getElementByIdx_x("jsApplet")["setParameter"]("title3","Siting");

    </script>

  </body>

</html>


IE控制台效果

 

初始Applet!    staticVar = 0; globalVar = 100

启动Applet!    staticVar = 1; globalVar = 101

name : Applet

运行Applet!    staticVar = 2; globalVar = 102

绘画Applet!

[Timer] = afterEndApplet

[title2] = jesseShen

[title3] = Siting

[title3] = Siting

 

如果最小化并且还原applet后,再次出现“绘画Applet”;

如果关闭网页,则虚拟机关闭;

如果刷新网页,启动stopdestroy方法,并且重启开始initstart,静态变量和动态变量效果不同;

--------------------------------------------

 

绘画Applet!

停止Applet!    staticVar = 3; globalVar = 103

摧毁Applet!    staticVar = 4; globalVar = 104

初始Applet!    staticVar = 4; globalVar = 100

启动Applet!    staticVar = 5; globalVar = 101

name : Applet

绘画Applet!

运行Applet!    staticVar = 6; globalVar = 102

[Timer] = afterEndApplet

[title2] = jesseShen

[title3] = Siting

[title3] = Siting

 

---------------------------------------

 

绘画Applet!

初始Applet!    staticVar = 2; globalVar = 100

启动Applet!    staticVar = 3; globalVar = 101

name : Applet

运行Applet!    staticVar = 4; globalVar = 102

绘画Applet!

停止Applet!    staticVar = 5; globalVar = 103

摧毁Applet!    staticVar = 6; globalVar = 104

[Timer] = afterEndApplet

[title2] = jesseShen

[title3] = Siting

[title3] = Siting

这里的全局变量和静态变量效果相同,当关闭当前applet或者重启新applet,效果如前。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值