《第9章Java的Applet编程》由会员分享,可在线阅读,更多相关《第9章Java的Applet编程(27页珍藏版)》请在金锄头文库上搜索。
1、第第9 9章章 JavaJava的的AppletApplet编程编程下一页上一页返回开始主要内容主要内容n9.1JavaApplet概述概述nApplet的生命周期的生命周期nApplet的绘图周期的绘图周期n9.2实现一个简单的实现一个简单的Applet程序程序nApplet程序编写与编译程序编写与编译n将将Applet嵌入嵌入Web网页网页nApplet的执行的执行n9.3Applet生命周期状态切换举例生命周期状态切换举例n9.4Applet的常用方法的常用方法n9.5Applet的安全限制的安全限制n作业作业2Java的Applet编程下一页上一页返回开始9.1Javaapplet概述
2、概述Java小应用程序(Java Applet)是使用Java语言编写的一段代码,在浏览器环境运行。Applet与Application的主要区别:执行方式不同Application是使用命令行命令直接运行,从其main()方法开始运行的;Applet则是在浏览器中运行,本身的执行过程也较Application复杂。首先必须创建一个HTML文件,通过编写HTML语言代码告诉浏览器载入何种Applet以及如何运行再在浏览器中给出该HTML文件的URL地址即可java.lang.Object java.awt.Component java.awt.Container java.awt.Panel
3、java.applet.Applet javax.swing.JApplet3Java的Applet编程下一页上一页返回开始1.编写一个编写一个Applet编写一个Applet,必须首先从java.applet.Applet派生一个类,之前必须加上public :import java.applet.*;public class SimpleApplet extends Applet 如果使用Swing组件编写applet,则applet必须扩展javax.swing.JApplet类,以JApplet作为顶层容器,在其中加入Swing组件,从而保证所有的绘图和更新动作都能够正确地执行。4Ja
4、va的Applet编程下一页上一页返回开始Java.applet.Appletpublic void init()public void destroy()public void start()public void stop()public void paint(Graphics g)public class SimpleJApplet extends JAppletpublic void init()public void start()public void stop()public void destroy()public void paint(Graphics g)2.Applet的
5、程序结构的程序结构5Java的Applet编程下一页上一页返回开始Javaapplet概述概述applet一开始运行,就会由浏览器或appletviewer自动启动两个线程周期。n生命周期n绘图周期6Java的Applet编程下一页上一页返回开始初始态(瞬态)初始态(瞬态)运行态运行态停止态停止态消亡态消亡态离开离开web页面:极小页面:极小化或装入其他页面,化或装入其他页面,调用调用stop()方法方法重新装入或改变页面重新装入或改变页面大小或返回大小或返回Web页面,页面,调用调用start()方法方法关闭浏览器,调用关闭浏览器,调用destroy()方法方法第一次装入,构造第一次装入,构
6、造applet类,调用类,调用init()方法方法调用调用start()方法方法9.1.1 Applet的生命周期7Java的Applet编程下一页上一页返回开始Applet的生命周期当Applet被浏览器运行时, init() 、start()、stop()、destroy()等自动执行。ninit():初始化,自动调用,只执行一次。本方法主要完成一些在Applet构造方法所不不能完成的工作。nstart():初始化后,重入等都将自动调用。本方法是Applet的主体,在其中可以执行一些任务或启动相关的线程来执行任务。nstop():离开Applet所在页面时调用,以停止消耗系统资源。ndes
7、troy():浏览器关闭时自动调用,以清除Applet所用的所有资源。8Java的Applet编程下一页上一页返回开始9.1.2Applet的绘图周期的绘图周期applet程序中所采用的绘图机制主要涉及三个方法:npaint()nupdate()nrepaint()update()方法和paint()方法都有一个Graphics类的对象作为参数。Graphics是画图的关键,它可以支持两种绘图:n基本的绘图,如:画线、矩形、圆等;n加载并显示图像,主要用于动画制作。9Java的Applet编程下一页上一页返回开始Applet绘图周期各方法之间的调用关系绘图周期各方法之间的调用关系10Java的
8、Applet编程下一页上一页返回开始9.2实现一个简单的实现一个简单的Applet程序程序9.2.1Applet程序编写与编译程序编写与编译1.Applet程序编写程序编写例9.1按照applet程序结构,编写一个简单的applet,绘制“Welcome to Java Programming!”。/WelcomeApplet.javaimport java.awt.Graphics;import javax.swing.JApplet;public class WelcomeApplet extends JAppletpublic void paint(Graphics g)super.pa
9、int(g); /调用超类JApplet的paint方法/在坐标为(25,25)的位置显示字符串g.drawString(Welcome to Java Programing!,25,25); 【程序说明】 Java applet中不需要main方法,要求程序中有且必须有一个类是系统类Applet(在java.awt包中)或JApplet(在java.swing包中)的子类。paint方法表示它将在WWW所显示的Web页面需要重画时(窗口移动或放缩时)被浏览器自动调用并执行。11Java的Applet编程下一页上一页返回开始Applet程序编写与编译程序编写与编译2.Applet的编译的编译在
10、命令行状态使用javac命令对WelcomeApplet.java进行编译,得到WelcomeApplet.class类文件。javac WelcomeApplet.java 12Java的Applet编程下一页上一页返回开始9.2.2将将applet嵌入嵌入Web网页网页applet必须嵌入Web页,并在applet容器(appletviewer或浏览器)中才能运行,所以在执行applet之前,必须创建HTML文件,指明applet容器应装入和执行哪个applet。通常HTML文档以“.html”或者“.htm”扩展名结尾。标记用于在Web页面中嵌入applet,头标签与尾标签必须成对出现。
11、13Java的Applet编程下一页上一页返回开始HTML中中applet标记的使用标记的使用 . . . alternateHTML 最简形式最简形式:14Java的Applet编程下一页上一页返回开始9.2.3Applet的执行的执行15Java的Applet编程下一页上一页返回开始执行执行applet的两种方法的两种方法方法1. 使用appletviewer运行applet使用JDK的内置命令appletviwer。在命令行状态,输入命令:appletviewer welcome.html 方法2. 使用浏览器运行applet使用支持java浏览器。此处使用IE浏览器。在地址栏中输入HT
12、ML文档的URL地址即可 演示演示16Java的Applet编程下一页上一页返回开始9.3applet生命周期状态切换举例生命周期状态切换举例Applet生命周期的状态切换 ,可参考教材中【例9.2】17Java的Applet编程下一页上一页返回开始URL说明说明URL(Uniform Resource Locator,统一资源定位符),用来标识Internet资源的地址。通常情况下,资源表示一个文件,如一个HTML文档、一个图像文件或一个声音片断等。URL的通用格式是::/ URL类 (全名.URL)的构造方法n绝对URL的构造方法: URL(String spec) 例: URL url=
13、new URL(“http:/ /index.html”)n对URL的构造方法: URL(URL base, String spec)例如,某绝对地址:http:/,在该目录下有两个文件 new1.html和new2.htmlURL base=new URL(“http:/”);URL url1=new URL(base,“new1.html”);URL url2=new URL(base,“new2.html”);n其他URL的构造方法:URL url=new URL (“http”, “”,“/index.html”); 18Java的Applet编程下一页上一页返回开始9.4Applet
14、的常用方法的常用方法9.4.1获取获取Applet的有关信息的有关信息ngetDocumentBase():返回包含该Applet对象Web页面的地址ngetCodeBase():返回当前applet所在的URLngetParameter(String target )提取HTML文件中名为target的参数的值 n返回由HTML文件所提供的参数信息。Applet提供了从Web页面文件中提取参数的方法,可以在HTML文件中通过标记设置一些参数供Applet使用。例如有如下的HTML代码: nn 19Java的Applet编程下一页上一页返回开始9.4.2获取多媒体文件获取多媒体文件1. get
15、Image(URL base,String target):返回网址base中名为target的图像nbase 图像文件的位置:通常是由applet的getDocumentBase或getCodeBase方法返回的一个URL,表示图像在Internet中的位置(如果applet是从自己的计算机上加载的,则返回图像在计算机中的位置)ntarget 图像文件名2. getAudioClip(URL base,String target):返回地址base中名为target的声音AudioClip是一个音频剪辑对象的接口,它提供了音频对象的抽象控制。无论URL指定的音乐文件是否存在,getAudio
16、Clip()方法都会很快返回值,因为音频文件要等到播放的时候才下载。url参数指定的必须是一个绝对地址。 AudioClip是一个接口,因此不能直接用new创建一个声音对象实例,它必须和Applet类一起使用,利用Applet类提供的声音装载方法载入一个声音文件,形成一个声音对象实例。之后利用接口AudioClip提供的三个方法进行声音操作:npublic void play():播放一遍npublic void loop() :循环播放npublic void stop() :停止播放20Java的Applet编程下一页上一页返回开始获取多媒体文件获取多媒体文件【例9.3】设计一个apple
17、t,加载声音、图像并循环播放、显示。声音、图像文件名利用getParameter方法由HTML文件获得。屏幕效果如图所示。21Java的Applet编程下一页上一页返回开始9.4.3同页同页applet间的通信间的通信(1)public AppletContext getAppletContext()得到当前运行页的环境上下文AppletContext对象。通过AppletContext对象,可以得到当前小应用程序运行环境的信息。AppletContext是一个接口,其中定义了一些方法可以得到当前页的其它小应用程序,进而实现同页小应用程序之间的通信。(2)public abstract App
18、let getApplet(String name)取得名为name的Applet对象。(3)public abstract Enumeration getApplets()此方法可得到当前页中所有Applet对象 22Java的Applet编程下一页上一页返回开始同页同页applet间的通信间的通信【例9.4】同页applet间的通信示例。例中建立两个applet小程序,一个完成发送信息功能,另一个完成接受信息功能。屏幕效果如图所示。23Java的Applet编程下一页上一页返回开始同页同页applet间的通信间的通信准备两个applet程序:nFirstApplet.java nSecon
19、dApplet.java 一个HTML文件同web页的applet通信示例 24Java的Applet编程下一页上一页返回开始9.5小应用程序的安全限制小应用程序的安全限制appletBrowserSERVER本地程序本地程序fileSERVERlocalconnectionconnectionapplet被下载的被下载的与与applet无关的无关的本地方法本地方法25Java的Applet编程下一页上一页返回开始小应用程序的安全限制小应用程序的安全限制n运行时执行另一程序:小应用程序绝不能运行任何一个本地可执行程序。n任何文件的输入/输出:小应用程序不能读/写本地计算机的文件系统。n调用任何本地方法:除了所用Java版本号,操作系统名和版本号,小应用程序不能获取任何与本地计算机有关的信息,也不能通过调用任何本地方法、API等方法获得。特别是,小应用程序不能获得用户名、电子邮件地址等等信息。n尝试打开除提供Applet的主机之外的任何系统的Socket:除了下载它的服务器之外,小应用程序不能和任何一台主机通信。26Java的Applet编程下一页上一页返回开始作业作业任选一:任选一:1.编写人机交互的applet程序,参见习题9-6;2.编写applet程序,绘制奥运五环标志图形,参见习题9-7。27Java的Applet编程