一.一个简单的Applet
1.Applet是一种包含在HTML网页中的Java应用程序。
2.在使用Applet标记时,需要告诉浏览器需要加载哪个Applet以及加载的Applet所放在网页中的位置。
3.一个applet就是一个扩展与java.applet.Applet类的Java类。
4.所有的applet都扩展于JApplet类,它是Swing applets类的父类。JApplet是Applet类的直接子类。
5.如果applet包含Swing组件,就必须扩展与JApplet类。在Applet类中的Swing组件不能正确的显示出来。
二.将应用程序转化为Applet
1.将一个图形的Java应用程序转换为能够嵌入在网页中运行的applet很容易。
2.将Java应用程序转换为applet的步骤:
(1)创建一个html页面,并用适当的标记加载这个applet代码。
(2)创建一个JApplet类的子类,将这个子类标记为公有。否则,不能加载applet。
(3)删去应用程序中的main方法。不要为应用程序构造框架窗口,应用程序将显示在浏览器中。
(4)将框架窗口构造器中的初始化代码移到applet的init方法中。
(5)删除对setSize的调用。
(6)删除对setDefaultCloseOperation的调用。
(7)若应用程序调用了setTiele,则删除该调用。
(8)applet会自动显示出来,不用调用setVisible(true)。
三.Applet的Html标记和属性
1.Applet的相关属性:
(1)width,height设置Applet的属性。
(2)align指定Applet的对齐方式。
(3)vspave, hspace指定Applet上下及两侧的像素值。
(4)code指定Applet的类文件名称。只用于指定包含Applet类的类名。code和object属性都是必需的。
(5)codebase用于定位类文件的URL。
(6)archive可以列出JRA文件,或包含类的文件和Applet需要的其他资源。
(7)object用来指定包含序列化的Applet对象的文件名(当把所有的实例域写到一个文件中时,对象就被序列化了)。
(8)name,Applet的name属性,可以用这个属性来代表相应的Applet。
(9)alt,Java有可能在浏览器中被系统管理员禁用。
2.要使用同一个页面上的两个Applet可以直接通信,name属性也是一个要素,必须为每个当前的Applet实例指定一个名字。然后将这个名字字符串传递给AppletContext类的getApplet方法。
3.如果浏览器不能处理Applet,那么就会忽略不识别的Applet的和param标记。相反,支持java的浏览器不会显示<applet>
与</applet>
标记之间的文本。
四.Object标记
1.对于Java applet而言,object标记中的关键属性是classid。
2.classid属性后面可以跟codebase属性,并与在applet标记中的方法一样。
五.使用参数向Applet传递信息
1.与应用程序可以使用命令行信息一样,Applet也可以使用嵌入在HTML中的参数。是由使用被称为param的HTML标记连同自定义属性完成的。
2.只能在Applet的init方法中调用getParameter方法,而不是在构造器中调用。建议一般不要为Applet创建构造器。
3.参数的返回值通常是字符串类型。如果需要数字类型,就需要将字符串类型转换为相对应的数字类型。
4.Applet中的重要方法:
(1)public String getParameter(String name),获得正在加载的Applet网页中由param标记定义的参数值,字符串名区分大小写。
(2)public String getAppletInfo(),很多Applet的作者覆盖这个方法,它用于返回一个包含当前Applet作者,版本号和版权信息的字符串。
(3)public String[][] getParameterInfo(),可以覆盖这个方法,用于返回一个Applet支持的param标记选项的数组。这个数组每行有三项:名字,类型和有关参数的描述。
六.访问图像和音频文件
1.Applet可以处理图像和音频。图像必须是GIF,PNG或JPEG格式,音频必须是AU,AIFF,WAV或MIDI格式。动画支持GIF,并且能显示动画效果。
2.需要利用相对的URL指定图像和音频文件的位置。通常,由getDocumentBase或getCodeBase方法获得基URL。前者可以获得包含Applet的HTML网页的URL;后者可以获得Applet的codebase的URL。
3.可以通过getImage()和getAudioClip()方法获得基URL和文件的存储位置。
4.播放音频剪辑,调用play方法。
5.相关方法:
(1)URL getDocumentBase():获得包含Applet网页的URL。
(2)URL getCodeBase():获得getCodeBase目录的URL,Applet是由这个目录加载的。
(3)void play(URL url):播放由URL指定的音频文件。
(4)void play(URL url, String name):利用字符串提供相对于第一个参数的URL路径,如果没有找到音频剪辑,就不做任何操作。
(5)AudicClip getAudicClip(URL url):获得URL指定的音频剪辑。
(6)AudicClip getAudicClip(URL url, String name):使用字符串提供来提供相对于第一个参数的URL路径,如果没有找到音频文件,就返回null。
(7)Image getImage(URL url)
(8)Image getImage(URL url, String name):返回一个由URL指定的图像对象,这个对象封装一个图像,如果图像不存在,就返回一个null,否则,立即启动一个独立的线程来装载图像。
七.Applet上下文
1.Applet间的通信:
(1)一个网页可以包含多个Applet,如果网页中包含多个来自于同一个codebase的Applet,则这些Applet之间就可以通信。
(2)如果HTML中的每个Applet文件都指定一个name属性,就可以使用AppletContext接口中的getApplet方法来得到applet的引用。
(3)可以把所有的applet都列在网页上,不用管他们是否有name属性。getApplets方法返回一个枚举对象。
(4)Applet不能与其他网页上的Applet通信。
2.在浏览器中显示信息:
(1)通过使用AppletContext类的方法可以访问环境浏览器的两个区域:状态行和网页显示区域。
(2)可以使用showStatus消息在浏览器底部的状态行中显示一个字符串。
(3)利用showDocument方法,可以请求浏览器显示不同的网页。
3.既是Applet,又是应用程序:
(1)在Applet查看器中运行的是Applet,由命令行启动的是应用程序。
(2)在Applet启动时,必须调用它的init方法和start方法。
(3)相关方法:
1)Enumeration<Applet> getApplets()
:返回在同一个上下文中(也就是在同一个网页中)所有Applet的枚举值。
2)Applet getApplet(String name)
:返回当前上下文给定名称的Applet。若不存在,返回null,只在当前网页中查找。
3)void showDocument(URL url)
:在当前页中显示新网页。
4)void showDocument(URL url, Sreing target)
:在浏览器的框架中显示一个新网页。用target参数指定目标框架。