JavaEE第六周

时间:2022-07-18 04:57:18

Applet简介

Java Applet简介

最近要使用worldwind java sdk做Applet开发,看了些Applet的资料,为了防止忘记,记录如下:

applet是通过<applet>标签嵌入到html中来使用,因此<applet>标签应该至少包含下面这些信息:

  • 从哪里获取applet文件
  • applet的大小
applet和Java 2D程序有很多相关的地方,下面是Applet继承层次图
JavaEE第六周
从中可以看出,applet是Panel的一个子类,可以作为Container来使用。
 
下面是一个HTML中的一个典型的Applet标签:
<applet code = "HelloWorld.class" width = "800"  height = "600">
</applet>
 

applet声明周期

Applet与Panel的不同之处在于Applet拥有生命周期控制。Applet类提供了四种方法,用于生命周期控制,下面是这四种方法的简单介绍:
 
  • init
当初始化applet时,需要调用该方法。applet可以有默认的构造函数,但习惯上是在init方法中而不是构造函数中进行全部的初始化工作。
  • start
该方法会在浏览器调用init方法之后执行。当用户从其他页面返回到包含applet的页面时,该方法也会执行。说明start方法可以执行多次,与之相比,init方法只能执行一次。start方法经常为applet重启一个线程,例如,恢复动画。如果applet在用户离开当前页面时没有什么需要挂起的,就没有必要实现该方法(或stop方法)。
  • stop
该方法在用户离开包含applet的页面时被自动调用。
  • destory
该方法只有在浏览器正常关闭时才会被调用。
 

applet的HTML标记和属性

下面是一个最简单的形式使用applet的例子:
<applet code="HelloWorld.class" width="400" height="300">
</applet>
可以看出,code属性指明了类文件名,并且必须包含.class扩展名;width和height属性确定容纳applet窗口大小。两者都是以像素为单位。
用于编码的applet属性
下面的属性用于高速浏览器如何定位applet代码:
  • code
这个属性给出applet类文件的名称。若指定codebase,则路径是相对于codebase的;若没有指定codebase,则路径是相对于当前页面的。
路径名必须与applet的包名匹配。例如,如果applet的类在包com.demo包中,则该属性应该是code="com.demo.HelloWorld.class"或"com/demo/HelloWorld.class"
  • codebase
这个可选属性指出用于定位类文件的url。这个url可以是决定路径,也可以是相对路径,相对路径的一个示例如下:
AProject/
|----Page.html
|----Applets/
  |----HelloWorld.class
可以在Page.html中这样写<applet>标签:
<applet code="HelloWorld.class" codebase="Applets" width="800" height="600"></applet>
  • archive
这个可选属性列出Java存档文件、包含类文件及applet需要的其他资源文件。这些文件是applet在加载前从服务器获得的。这种技术明显加快了加载过程的速度,这是因为只需要一个HTTP请求来加载包含多个小文件的JAR文件。JAR文件之间使用逗号分隔。例如:
<applet code="HelloWorld.class" archive="Helllo.jar, demo/test.jar" width="800" height="600"></applet>