Applet是能够嵌入到一个HTML页面中,且可通过Web浏览器下载和执行的一种Java类,必须在支持JAVA的浏览器页面中运行,也可以使用J2SDK提供的Appletviewer程序来浏览结果。
Applet的工作原理:
1.class和HTML保存在服务器
2当浏览器向服务器请求时下载嵌入了Applet的HTML文件。
3下载到客户端后,由浏览器解释HTML中的各种标记并显示在用户屏幕上,当浏览器遇到HTML文件中的一个特殊标记时,表明嵌有Applet程序,浏览器会根据Applet名字和位置把其字节码文件从WWW服务器上下载到本地。
4利用浏览器本身拥有的Java解释器执行该字节码。
一、HTML标记格式
加载applet的HTML标记<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>
属性code、width和height是必须的,分别指定了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>
相关推荐
Java+Applet实例讲解(分为1和2两部分)、Java+Applet实例编程、java+Applet登录、JavaApplet教程.pdf、JAVA_applet应用实例.ppt、JavaApplet编程技巧实例专辑、javaapplet例子.doc、Applet类.doc等教程。...
2.在Applet中加入1个文本框,1个文本区,每次在文本框中输入文本,回车后将文本添加到文本区的最后一行。 3在Applet中加入2个复选框,显示标题为“学习”和“玩耍”,根据选择的情况,分别显示“玩耍”、“学习”、...
简单的一个Java Applet的动态显示图片的小程序。将资源内的图片放置到E盘根目录下。如果想换图片,记得修改width和heigh的初始值,值为图片的宽和高。如果你对动画有兴趣,可以试着稍微修改一下本程序(程序里有相关...
.Java Applet 可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。当Applet用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户...
目前常见的智能IC卡运行着JavaCard虚拟机,智能IC卡上可以运行由精简后的Java语言编写的卡应用(简称Applet)。智能IC卡的Applet不能自己启动,必须由外部终端(例如POS机,地铁刷卡终端等)向卡片发送Select命令,...
在当今流的Ajax技术+Flash的胖客户端技术时,我们不要忘记Applet小程序是Java技术中非常重要的客户技术,它也是非常成熟的客户端技术。在实际开发中,如果能够利用恰当的Applet技术,那么可以写出维护性、重用性很高...
if(MyList.size()>30){ //优化,如果MyList中的points大于Applet能显示的范围,则去掉不能显示在Applet中的Points for(int i=0;i()-30;i++){ MyList.remove(i); } } //只留下30个点,只要能够在...
js与applet的相互调用资源包 js与applet的相互调用资源包
java3d applet 入门小案例 import java.applet.Applet; import java.awt.*; import com.sun.j3d.utils.applet.MainFrame; import java.awt.BorderLayout; import com.sun.j3d.utils.universe.SimpleUniverse; ...
Applet做的一个小游戏,多指教。Applet做的一个小游戏,多指教。
(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统(java+applet)(Java毕业设计)聊天系统...
jasperreport 报表打印客户端使用applet打印。
java小程序(关于Applet多线程的应用实现的是一个龟兔赛跑的程序可以更换图片来完成你想要的动画)
简单的java applet图像移动重画实例,简单的java applet图像移动重画实例
一个applet小应用城西,通过commons-net包操作ftp上传大文件,有上传进度显示。上传完成后可以回传文件名和文件路径给js,网页参数设置如下: <applet code="com.cmp.training.ftp.FtpJApplet.class" name="ftp...
我把class文件放入web-inf/class/中,html中的代码... ...web-inf是一个特殊的目录,不能把applet放入其中,但可以在顶层建一个目录, 如 good/applet/,然后CODEBASE = "good/applet/" 同时把class所在的包拷入这个目录
本资源是博客《js 动态调用 applet 内的方法》一文示例程序,博客地址:http://blog.csdn.net/defonds/archive/2011/03/23/6270498.aspx。 以下步骤、命令行全都在 jsCallApplet 目录下进行。 步骤一:将 FileApplet...
Java的线程和Java AppletJava的线程和Java AppletJava的线程和Java AppletJava的线程和Java AppletJava的线程和Java Applet
对打成jar包的applet进行签名的shell脚本,以保证能在页面上运行 1.GenLicense.sh为生成密钥文件的脚本 该脚本执行会生成.store和.cert两个文件 其中keytool命令中 -keypass changeit //签名的密码为"changeit" ...