1、鼠第9章JavaJava的Applet编程急主要内容 9.1 Java Applet概述 Applet的生命周期 Applet的绘图周期 9.2实现一个简单的Applet程序 Applet程序编写与编译 将Applet嵌入Web网页 Applet的执行 9.3 Applet生命周期状态切换举例 9.4 Applet的常用方法 9.5 Applet的安全限制 作业Java 的 Applet 编程开始 返回 上一页 下一页 2嬴 9.1 Java applet 概述Java小应用程序(Java Applet)是使用Java 语言编写的一段代码,它能够在浏览器环境中 运行。Applet与Applic
2、ation地主要区别在于它们的 执行方式不同:Application是使用命令行命令 直接运行,从其rnain()方法开始运行的;而 Applet则是在浏览器中运行的,首先必须创建 一个HTML文件,通过编写HTML语言代码告 诉浏览器载入何种Applet以及如何运行,再在 浏览器中给出该HTML文件的URL地址即可,A)plet本身的执行过程也较Application复杂OJava 的 Applet 编程开始 返回 上一页 下一页 3JM_ javaJang.Object java-awt.Component java.awt.Container java.awt.Panel java.ap
3、plet.Applet javax.swingJAppletJava 的 Applet 编程开始 返回 上一页 下一页 4瀛1.编写一个Applet 编写一个Applet,必须首先从java.applet.Applet派 生一个类,之前必须加上public:import java.applet.*;public class SimpleApplet extends Applet 如果使用Swing组件编写applet,则applet必须扩展 javax.swingJApplet类来实现,以JApplet作为顶层 容器,在其中加入Swing组件,从而,呆证所有的绘图 和更新动作都能够正确地执行。
4、Java 的 Applet 编程开始 返回 上一页 下一页 5需 2.Applet的程序结构下面是一个简单的叩plet的程序结构。如图:public class SimpleJApplet extends JAppletpublic void.public void start().public void stop().public void destroy().public void paint(Graphics g).Java 的 Applet 编程开始 返回 上一页 下一页 6Java_Java 的 Applet 编程开始 返回 上一页 下一页 7Java编程时可按此结构进行这5个关键方
5、法覆 盖,但并不是每个applet都要覆盖这些 方法,有些简箪的applet可以一个方法 也不覆盖。applet一开始运行,就会由浏览器或appletviewer自动启动两个线程周期。一个是生命周期,另一个是绘图周期。Java 的 Applet 编程开始 返回 上一页 下一页 819,LI Applet的生命周期-吨U始态(瞬态)第一次装入,构造applet 类,调用 init()调用 start()方方法 一匕法运行态离开web页面:极 小化或装入其他页 面,调用stop。方法 停止态关闭浏览器,调用.destroy()方法消亡态、重新装入或改变页面 左小或返回Web页 调用start。方法
6、Java 的 Applet 编程开始 返回 上一页 下一页 9岑Java_ Applet 中没有 main()方法。当 A|)plet被浏览器运行时,initQ、start。、stop。、destroy()方法等自动执行:init()方法:初始化,自动调用,只执行一 次。本方法主要完成一些在Applet构造方法 所不不能完成的工作。Java 的 Applet 编程上一页 下一页 10Java start。方法:初始化后,重入等都将自动调 用。本方法是Applet的主体,在其中可以执 行一些任务或启动相关的线程来执行任务。stop。方法:离开Applet所在页面时调用,以停止消耗系统资源。des
7、troy。方法:浏览器关闭时自动调用,以清除Applet所用的所有资源。Java 的 Applet 编程开始 返回 上一页 下一页 11Java9.L2 Applet的绘图周期 applet程序中所采用的绘图机制主要涉 应三个方法:paintQ方法、update。方法和repaint()方京。update()方京 和paint()方法都有一个Graphics类的 对豪作为参数。Graphics是画图的关雇,它可以支持两种绘图:一种是基本的绘图,如:画线、矩形、圆等;另一种是加载并显示图像,主要用于动画制作。Java 的 Applet 编程开始 返回 上一页 下一页 12Appie工玄国冏册合刀
8、沃。回的洞用JAVA关系Java 的 Applet 编程开始返回上一页下一页13.天珑一,阻j干见Applet;稔W在Java _ 9.2.1 Applet程序编写与编译 L Applet程序编写【例9】按照applet程序结构,编写 一个简单的applet 9即在applet上绘制“Welcome to Java Programming!”。源程序如下:/WelcomeApplet.javaimport java.awt.Graphics;import javax.swing JApplet;Java 的 Applet 编程开始 返回 I上一页 下一页 14岑Java_public clas
9、s WelcomeApplet extends JApplet public void paint(Graphics g)super.paint(g);调用超类 JA叩let 的 paint 方法在坐标为(25,25)的位置显示字符串g.drawString(llWelcome to Java Programing!”,25,25);Java 的 Applet 编程开始 返回 上一页 下一页 15岑Java_【程序说明】Java applet中不需要main方法,要求程序干有且必须有一个 类是系统类Applet,加java.awt包中)或 JApplet(在 java.swing 包中)的子类
10、paint方法表示它将在 WWW所显示的Web页面需要重画时(窗口移动或放缩时)被浏览器自动调用并执行。Java 的 Applet 编程上一页 下一页 16赢2.Applet的编译如同应用程序的类,执行前必须对 applet类进行编译,在命令行状态使用 javac 命令对 WelcomeApplet.java 进行 编译,得到 WelcomeApplet.dass 类文 件。命令如下:javac WelcomeApplet.javaJava 的 Applet 编程开始 返回 上一页 下一页 17版 置 applet m八 weu 咽局鼠 页_ applet必须嵌入 Web页,并在applet
11、容 器(appletviewer或浏览器)中才能运 行,所以在执行applet之前,必须创建 HTML文件,指明applet容器应装入和 执行哪个applet o通常HTML文档以“.html或者.htiTr扩展名结尾。vapplet标记 用于在 Web页面中嵌入applet,头标签 applet与尾标签v/applet必须成对 出现。下面介绍与Applet程序有关的 HTML文件标记。Java 的 Applet 编程开始 返回 I上一页 下一页 18用Java _ APPLETARCHIVE=archiveList CODEBASE=codebaseURL CODE=appletFileAL
12、T=alternateTextNAME=appletlnstanceNameWIDTH=pixels HEIGHT=pixelsALIGN=alignmentVSPACE=pixels HSPACE=pixels alternateHTMLJava 的 Applet 编程开始 返回 I上一页 下一页 19Java_ARCHIVE=archiveList Fi/el,而&二给出了 Applet类及其运行时所需的类所在的卷文件名。CODEBASE=codebaseURL指明Applet类文件所在URL基址,在Applet类中,方法 getCodeBase。可以获取该属性。如果这个属性没有指明,那么
13、 Applet类文件必须与包含它的HTML页面在同一个地方,方法 getCodeBase()返回的值与 getDocumentBase()相同。CODE=appletFile指明需要运行的Applet类文件(,dass文件),该文件是与 codebaseURL 相关的。NAME=appletlnstanceName给出了 Applet类运行时的实例名,这使得同处于一个页面的不同 Applet之间能够相互通信。方法getAppletContext()可以得到同一 个方页面中其它Applet类。Java的Applet编程|开始|返回|上一页|下一页|20JavaALT 二 dItorndto To
14、xt如果浏览器支持Applet但不能运行它,就显示 a/temateText中所给出的文字。否则就忽略它。WIDTH=pixels HEIGHT=pixelsApplet在浏览器中所显示的高度和宽度(以象素为单 位)。ALIGN=alignmentApplet在浏览器中显示时的对齐方式,其含义与效果与 图片在HTML中的一样。其取值有:left,right,top,texttop,middle,absmiddle,baseline,bottom,absbottom。VSPACE=pixels HSPACE=pixelsApplet在浏览器中显示时上下、左右要预留的高度和宽度,其含义与效果与图片
15、在HTML中的一样。Java 的 Applet 编程开始 返回上一页下一页21岑Java_ VPARAM属性可以使得Applet能够从页面中获取所 需的参数。Applet 可以用其方法 getParameter()获取 VPARAM 属性指定的参数。VPARAM属性的作用与应用程序中main。方法里参数StrMga/gs/7的作用是一样的。一个好的小应用程序,应该提供用户能够设置外部参数 的功能,以使得用户能够根据自己的需要来应用它。方 法getParameterlnfo()可以得到有关VPARAM属性 的说明信息。alternateHTML如果浏览器不支持Applet,就解释alternat
16、eHTML所 给出的HTML代码。否则就忽略它。Java的Applet编程|开始 11 返回|上一页|下一页|22募最简形式则 welcome.html文档内容如下:在这里,通过codebase属性指明要装载 M类文件 WelcomeAppletdass位于当 前目录的class子目索下。Java 的 Applet 编程开始 返回 上一页 下一页 23赢9.2.3 Applet的执行解释执行Applet字节码Java 的 Applet 编程开始 返回 上一页 下一页 24赢 执行applet的两种方法方法 L 使用 appletviewerie#applet运行applet的一种方法是使用JD
17、K的内 置命令appletviwer。在命令行状态,输 入本令:appletviewer welcome.html方法2,使用浏览器运行applet运行applet的另一种方法是使用支持java 浏览器。此处使用工E浏览器。在地址栏中输 入HTML文档的URL地址即可量示Java的Applet编程)开始 11返回|上一页|下一页|25Java9.3 applet生窜周 期状态切换举例 Applet生命周期的状态切换,可参考教材中【例912Java 的 Applet 编程开始 返回 上一页 下一页 26W 94 Applet的常用方法 URL说明 URL(Uniform Resource Loc
18、ator,统一资源 定位符),它是Internet和 WWW的门户,用来标识Internet资源的地址。通常情况下,资源表示一个文件,如一个HTML文档、一个图像文件或一个声音片断等。URL的通 用格式是::/URL类(全名.URL)有多种构 造方法来描述各种类型的URLOJava的Applet编程|开始|返回|上一页11下一页|27Java_(1)绝对 URL 的构造方法:URL(String spec)例:URL url=new URLC/index.html)(2)相对 URL 的构造方法:URL(URL base,String spec)例如,某绝对地址:http:,在该 目录HF有两
19、个文件 newl.html和new2.htmlURL base=new URL();URL urll=new URL(base/Anewl.html,z);URL url2=new URL(baseJnew2.html);(3)其他URL的构造方法:URL url=new URL(http,www,hebiace,edu,crT,/index,html);Java 的 Applet 编程返回上一页 下一页 28Java林/Appier 叩卡大agetDocumentBase():返回包含该 Applet 对象Web页面的地址getCodeBase():返回当前 applet 所在的 URLge
20、t Pa ra meter(Stri ng target)提取 HTML 文件 申名为target留参数的值返回由HTML文件所提供的参数信息。Applet提供了从Web页面文件中提取参数的方法,可以在HTML文件中通过vparam标记设置一些 参数供A叩let使用。例如有如下的HTML代码 fe Java的Applet编程|_开始|返回 上一页|下一页|29垄Java9.4.2获取多媒体文件 1.get!mage(URL basezString target):返回网址base中名为target 的图像 getlmage 方法将 Image 力口载至1 applet 中,此方法有两个参数:图
21、像文件的位置和图像文件名。第1个参数,通常是由applet的getDocumentBase 或 getCodeBase 方法返回的一个URL,表示图像在Internet中的位置(如果applet是从自己的计算机上加载的,则返回图像在计算机中的位置)。Java 的 Applet 编程开始 返回 上一页 下一页 30岑Java_ 21 getAudioClip(URL base,String target):返回地址base中名为target 的声音 返回由参数所指定的AudioClip对象。AudioClip是一个音频剪辑好象的接 口,它提供了音频对象的抽象控制。无论 URL指定的音乐文件是否存
22、在,getAudioClipO方法却会很快返回值,因为音频文件要等到播放的时候才下载。url参数指定的必须是一个绝对地址。Java 的 Applet 编程开始 返回 上一页 下一页 31Java AudioClip 是一个接口,因此不能直接用new创建一个声音对象实例,它必须和Applet类一起使用,利用Applet类提供 的声音装载方法载入一个声音文件,形成 一个声音对象实例。之后利用接口 AudioClip提供的三个方法进行声音操作 public void play():播放一遍 public void loop():循环播放 public void stop():停止播放鼠 Java的A
23、pplet编程|开始|返回|上一页11下一页|32【例9.3设计一个applet,加载声音、图像并循环播放、显示。声音、图像文 件名利用getParameter方除由HTML文件获得。!幕效果如图所示。Java 的 Applet 编程开始 返回 上一页 下一页 33广4 要 口|/=。LJ MV 乂中Java信(1)public Appletcontext getAppletContext()该方法可得到当前运行页的环境上下文Appletcontext 对象。通过 Appletcontext 对 象,可以得到当前小应用程序运行环境的信息。Appletcontext是一个接口,其中定义了一些 方
24、法可以得到当前页的其它小应用程序,进而 实现同页小应用程序之间的通信。(2)public abstract Applet getApplet(String name)此方法可取得名为name的Applet对象。(3)public abstract Enumeration getApplets()此方法邱得到随前页中所有Applet犍象i1上一页IIII下一页I 34Java_【例9.4同页a叩let间的通信示例。例中建 立两个applet小程序,一个完成发送信息功能,另一个完成接受信息功能。屏幕效果如图所 示。Java的Applet编程|开始|返回|卜上一页|下一页|35孥JM_准备两个app
25、let程序:FirstApplet.java SecondApplet.java 一个HTML文件 同 web 页的 applet 通信示例 Java的Applet编程|开始 11返回 此 上一页11下一页|36Java制y ql/ij q工C RV FT 工 I 4岑Java_ 运行时执行另一程序:小应用程序绝不能运行 任何一个本地可执行程序。任何文件的输入/输出:小应用程序不能读/写本地计算机的文件系统。调用任何本地方法:除了所用Java版本号,操 作系统名和版本号,小应用程序不能获取任何 与本地计算机有关的信息,也不能通过调用任 何本地方法、API等方法获得。特别是,小应 用程序不能获得用户名、电子邮件地址等等信 息。尝试打开除提供Applet的主机之外的任何系统 的Socket:除了下载它的服务器之外,小应用 卷序不能和任何一台主机通信。Jr Java的Applet编程|开始 返回|)上一页11下一页|38Java作业编写a叩let程序,实现图像、声音文件 的加载、示或播放,图像、声音文件业可自已选择。之后编写调用该applet的HTML文档,利用a叩letviewer或直接使用浏览器运行此HTML文档。Java 的 Applet 编程开始 返回 上一页 下一页 39






