Applet

Applet是能够嵌入到一个HTML页面中,且可通过Web浏览器下载和执行的一种Java类,必须在支持JAVA的浏览器页面中运行,也可以使用J2SDK提供的Appletviewer程序来浏览结果。

Applet的工作原理:

1.class和HTML保存在服务器

2当浏览器向服务器请求时下载嵌入了AppletHTML文件。

3下载到客户端后,由浏览器解释HTML中的各种标记并显示在用户屏幕上,当浏览器遇到HTML文件中的一个特殊标记时,表明嵌有Applet程序,浏览器会根据Applet名字和位置把其字节码文件从WWW服务器上下载到本地。

4利用浏览器本身拥有的Java解释器执行该字节码。

一、HTML标记格式

加载appletHTML标记<applet><applet>标记的语法如下:

<applet

code=classfilename.class

width=applet_viewing_width_in_pixels

height=applet_viewing_height_in_pixels

[codebase=applet_url]

[alt=alternative_text]

[name=applet_name]

[vspace=vertical_margin]

[hspace=horizontal_margin]

[align=applet_alignment]

[archive=archivefile]

>

<paramname=param_name_1value=param_value_1>

<paramname=param_name_2value=param_value_2>

<paramname=param_name_nvalue=param_value_n>

//使用param标志在HTML中设置参数,Applet可以通过getParameter(参数)访问他们

</applet>

属性codewidthheight是必须的,分别指定了applet程序的类文件、可视区域的宽度和高度,各属性的含义如下:

(1)code:用来指定包含applet字节码的.class文件。默认情况下,Web浏览器假定已编译的字节码文件和HTML文档在同一文件夹中,也可以使用codebase属性来指定一个不同的文件夹。

(2)width:设置applet中可视区域的宽度,以像素为单位。

(3)height:设置applet中可视区域的高度,以像素为单位。

(4)codebase:用来设置Web浏览器所寻找的applet字节码文件的路径。例如,可以使用codebase属性值的“..”来指定包的父文件夹。

(5)alt:用于Web浏览器识别<applet>标记而不下载或运行applet的时候。此时,applet不显示,仅以纯文本的方式显示alt属性值。典型的应用是使用该属性值来通知用户网页中包含一个不可见的applet

(6)name:用来设置applet的名称。如果HTML文档中有多个applet,可以通过该属性让它们之间彼此通信。另外,在JavaScript语句中也可以使用指定名称的applet

(7)vspace:设置applet上下边框的宽度,以像素为单位。Web浏览器会在applet的可视区域周围预留相应大小的空白区域。

(8)hspace:设置applet左右边框的宽度,以像素为单位。用法同上。

(9)align:该属性取值范围为left|right|top|texttop|middle|absmiddle|baseline|bottom|absbottom,用来设置当applet可视区域小于HTML的屏幕区域时,applet的对齐方式。如果applet可视区域超过屏幕区域时,则applet会自行进行剪切。

(10)archive:用来设置含有applet文件的Java存档文件(.jar)。该属性值是一个URL,通常表示一个.jar文件或.zip文件的路径,一个.jar文件包含了applet使用的所有.class文件和其他文件。可以减少装载时间,改进执行效率。

二、主要方法

init()完成初始化

start()启动主线程运行init()方法结束后执行

paint(Graphicsg)绘制

stop()暂停执行主线程

destroy()Applet对象销毁时由浏览器虚拟机自动调用,释放资源

update()刷新重绘时执行,先清楚Applet画面,然后调用paint(),如果不希望清楚画面,可以重写此方法,直接调用paint()

paint()和update()都是从Applet祖先类Container(容器)中继承的方法

repaint()/repaint(intx,inty,intwidth,intheight)从Applet祖先类Component(部件)继承

无参调用形式是对整个Applet区域重画,自动调用update()方法

applet的初始化与终止的方法图示:

三、Applet绘图

paint(Graphicsg)方法

显露处理自动地发生,且导致对paint()方法的一次调用。一种Graphics类的被称为裁剪矩形的设备常用于对paint()方法进行优化。

repaint()方法

repaint()的调用可通知系统:你想改变显示。repaint()实际上产生了一个调用另一方法update()AWT线程。

update(Graphicsg)方法

update方法通常清除当前的显示并调用paint()update()方法可以被修改,如:为了减少闪烁可不清除显示而直接调用paint()

四、Applet代码中读取Applet参数值

Strings=getParameter("x1");

方法getParameter()搜索匹配的名称,并将与之相关的值以字符串的形式返回。如果这个参数名称在位于<applet></applet>标记对中的任何<param>标记中都未找到,则getParameter()返回null。参数的类型都是String。如果你需要其他类型的参数,则必须自己做一些转换处理。例如,读取应为int类型的参数,

intx1=Integer.parseInt(getParameter("x1"));

由于HTML的本性,参数名称对大小写不敏感;但是,使它们全部为大写或小写是一种良好的风格。如果参数值的字符串中含有空格,则应把整个字符串放入双引号中。值的字符串对大小写敏感;不论是否使用双引号,它们的大小写都保持不变。

五、Applet多媒体支持

1、图象获取

publicImagegetImage(URL,String)

publicImagegetImage(URL)

//其中URL为绝对地址

getCodeBase()//返回Applet字节码文件的URL地址

getDocumentBase()//返回html文件的URL地址

2、图象绘制

publicvoiddrawImage(Image,x,y,imageObserver)//最后一个参数为观察者,一般为this

3、利用双缓冲区绘图

建立图形缓冲区

Imageimg=createImage(300,300);

Graphicsg=img.getGraphics();//得到该缓冲区的Graphics对象

4、播放声音文件

利用Applet类的play()方法直接播放

play(URL,String)

play(URL)

使用AudioClip接口

接口方法:

publicvoidplay();//从头开始播放一个声音文件

publicvoidloop();//循环播放当前声音文件

publicvoidstop();//停止播放当前声音文件

使用getAudioClip()或者newAudioClip()获取AudioClip类型对象,后者为静态方法

AudioClipac=getAudioClip(getCodeBase(),"sloop.au");

六、调用存档文件

<appletcode="myclass.class"archive="resource.jar"width=height=>

</applet>

<objectcode="myclass.class"width=height=>

<paramname="archive"value="resource.jar">

</object>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值