Applet【总结】

1. Applet的基本工作原理?

答:Applet是一种特殊的Java程序。作为解释型语言,Java的字节码程序需要一个专门的解释器来执行它。对于Java Application来说,这个解释器就是独立的软件,如JDK的java.exe,VJ++的jview.exe等:而对于Java Applet来说,这个解释器就是兼容Java的Internet浏览器。

        Applet的基本工作原理:编译好的字节码文件(.class文件)保存在特定的WWW服务器上,同一个或另一个WWW服务器上保存着嵌入了该字节码文件名的HTML文件。当某一个浏览器向服务器请求下载嵌入了Applet 的HTML文件时,该文件从WWW服务器上下载到客户端,有WWW浏览器解释HTML中的各种标记,按照其约定将文件中的信息以一定的格式显示在用户屏幕上。当浏览器遇到HTML文件中的特殊标记<Applet>,表明它嵌有一个Applet时,浏览器会根据这个Applet的名字和位置自动把字节码从WWW服务器上下载到本地,并利用浏览器本身有用的Java解释器直接执行该字节码。

        从某种意义上说,Applet有些类似于组件或控件。与独立的Application不同,Applet程序所实现的功能是不完全的,需要与浏览器中已经预定实现好的功能结合在一起才能构成一个完整的程序。例如,Applet不需要建立在自己的主流程框架 main(),因为浏览器会自动为它建立和维护主流程;不一定要有自己专门的图形界面,因为它可以直接借用浏览器已有的图形界面。Applet所需要做的,是接受浏览器发送给它的消息或事件,如鼠标移动、击键等,并作出及时的响应,另外,为了协调与浏览器的合作过程,Applet中有一些固定的只能由浏览器在特定时刻和场合调用的方法。

2. Applet类的主要方法?

答:用户自定义Applet子类的Java Applet程序的标志。在实际运行中,浏览器在下载字节码的同时,会自动创建一个用户Applet子类的实例,并在适当时间发生时自动调用该实例的几个重要方法:

1)init()方法

    其用来完成主类实例的初始化工作。Applet的字节码文件从WWW服务器端下载后,浏览器将创建一个Applet类的实例并调用它从Applet类那里继承来的init() 方法。用户程序可以重载父类的init()方法,定义一些必要的初始化操作,如创建和初始化程序运行所需要的对象实例,把图形或字体加载入内存,设置各种参数,加载图形和声音并播放等。

2)start()方法

    其用来启动浏览器运行Applet的主线程。浏览器在调用init()方法初始化实例后,接着将自动调用start()方法启动运行该实例上的流程、用户程序可以重载start()方法,加入当前实例激活时欲实现的相关功能,如启动一个动画,完成参数传递等。

    除了在init()初始化之后被调用,start()方法在Applet被重新启动时也会被系统自动调用。一般有两种情况造成Applet重启动:一是用户使用了浏览器的Reload操作;二是用户将浏览器逆向了其他的HTML页面后又返回。总之,当包含Applet的HTML页面被重新加载时,其中的Applet实例就会被重新启动并调用start()方法,但是init()方法只被调用一次。

3)paint()方法

    其主要作用是在Applet的界面中显示文字、图片和其它界面元素。它也是浏览器可自动调用的Applet类的方法。与前面方法不同,paint()有一个固定的参数——Graphics类的对象g。导致浏览器调用paint()方法的事件主要有三种:

    ① Applet被启动之后,自动调用paint()来重新描绘自己的界面。

    ② 浏览器窗口改变时,如放大、缩小、移动或被系统的其它部分遮挡、覆盖后又重新显示在屏幕的最前方等,都要重画界面。

    ③ Applet的其他相关方法被调用时,如当repaint()被调用时,系统将首先调用update()方法将Applet实例所占用的屏幕空间

        清空,然后调用paint()重画。

4)stop()方法

    其类似于start()方法的逆操作。当用户浏览其他WWW页,或者切换到其他系统应用时,浏览器将暂停执行Applet的主线程。在暂停Applet之前,浏览器将首先自动调用stop()方法。用户可自定义stop()方法,如中止动画操作等。

5)destroy()方法

    当用户退出浏览器时,浏览器中运行的Applet实例也相应被消灭,即被内存删除。在消灭Applet之前,浏览器会自动调用Applet实例的destroy()方法来完成一些释放资源、关闭连接之类的操作。例如,终止所有当前Applet实例所建立并启动的子线程等。至于Applet实例本身,由于它是由浏览器创建的,最后也由浏览器来删除,不需要再destroy()中特别定义。

    实际上,上述Applet由浏览器自动调用的主要方法init(),start(),stop()和destroy()分别对应了Applet从初始化、启动、暂定到消亡的生命周期的各个阶段。

3. Applet的局限?

答:与普通Application不同,Applet由于安全缘故,不能随意访问所有资源,Applet的功能许多限制,例如,不能接触到本地的磁盘(不能再磁盘上读写);只能从它所在的特定的服务器下载数据。但可以通过用户的信任,来接触经过签名的Applet的这些限制。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值