付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 Java Applet Java Applet Java小应用程序(Java Applet)也叫小应用程序,是使用Java语言编写的一段代码,它嵌入到HTML文档中,通过网络传输并运行在浏览器环境下。它的执行方式与一般应用程序不同,生命周期也较为复杂。本章将介绍Applet程序的编写、运行及其主要方法。 Applet与Application都需要使用Java语言编制程序 执行方式不同 Application是通过Java解释器来执行的独立程序,一般地使用命令行命令直接运行,从其main()方法开始 而Applet在浏览器中运行的,除Java程序外,还必须创建一个对应的HTML文件,通过
2、编写HTML语言代码告诉浏览器载入哪个Applet以及如何运行。运行时在浏览器中给出该HTML文件的URL地址即可,Applet本身的执行过程也较Application复杂 Applet的独特性Applet的运行必须创建一个对应的HTML文件,在该文件中通过标记指定要运行的Applet程序名,然后将该HTML文件的URL通知浏览器Applet的安全性限定Applet是可以通过网络传输和装载的程序,通过网络装载程序常常会暗藏某些危险 Java 1.0的安全机制 Java提供了一个SecurityManager类,该类在Java虚拟机(JVM)上对几乎所有系统级调用进行监控。SecurityMan
3、ager类提供的安全模式称为sandbox(沙箱)安全模式JVM提供一个sandbox,允许Applet在其中运行,一旦Applet企图离开sandbox,它的运行就会被禁止本机代码远程代码JVM有用的资源(如文件等)沙箱Java 1.1的安全机制 JDK 1.1引入了“签名applet”的概念,如果系统能够鉴别某个数字签名是可信任的,则含有这个数字签名的applet将与本机代码同等对待,可以使用本地的资源在网络上传送时,applet和数字签名被组织成JAR(Java文档)格式一起传送,而没有数字签名的applet还与前一版本一样,只在沙箱中运行 本机代码远程代码JVM有用的资源(如文件等)沙
4、箱Java 2的安全机制 它允许用户自己设定相关的安全级别。,对于应用程序,也采取了和Applet一样的安全策略,程序员可以根据需要对本地代码或是远程代码进行设定,以保证程序更安全高效地运行已经不区分本机代码还是远程代码,所有的代码均需要通过安全检查。只当具有了访问许可的代码,才可以访问相关的资源 安全策略类下载器JVM有用的资源(如文件等)沙箱本机或远程代码Applet的安全机制 对系统安全性的限定尺度通常是在浏览器中设定的浏览器都禁止Applet程序的下述行为运行过程中调用执行另一个程序 所有文件I/O操作 调用本机(native)方法 企图打开提供该Applet的主机以外的某个套接口(s
5、ocket) Applet的安全机制applet浏览器SERVER本地程序fileSERVER本机connectionconnection下载applet的与applet无关的本地方法HelloWorld的Applet程序9-1编写Applet 以下面的形式创建一个类: import java.applet.*;public class AppletName extends Applet 这个类必须是public类型的,因此,程序文件的文件名需要与类名保持一致 类必须是java.awt.Applet类的子类,因此要引入所需要的包 Applet类的继承关系 Java.lang.Object po
6、nentJava.awt.ButtonJava.awt.Container ponentJava.awt.PanelJava.applet.AppletJava.awt.TextAreaJava.awt.FrameJava.awt.WindowApplet也是Panel类的子类,因此在缺省情况下,Applet使用FlowLayout布局管理器 Applet的主要方法 构造方法 init() start() 完成Applet的初始化操作 都是在Applet被激活前执行的,因此不能用它们来实现Applet的功能 Applet的显示 Applet本质上是个图形对象可以在Applet中使用System
7、.out.println()方法输出要显示的内容,但一般在图形环境下使用Applet的paint()方法绘制要显示的内容当Applet显示内容需要刷新时,paint()方法都会被调用 Applet的运行控制关系程序9-2 一个使用paint()方法绘制字符串的Applet程序 Java.applet.Appletpublic void init()public void destroy()public void start()public void stop()public void paint(Graphics g)Applet的生命周期 初始态(瞬态)运行态停止态消亡态离开Web页面:极小
8、化或装入其他页面,调用stop()方法重新装入或改变页面大小或返回Web页面,调用start()方法关闭浏览器,调用stop()、destroy()方法第一次装入,构造applet类,调用init()方法调用start()方法Applet的方法 init()方法当Applet对象被创建并初次装入支持Java的浏览器(例如AppletViewer)时,init()方法会被调用主要完成一些在Applet构造方法所不能完成的工作,通常用于完成Applet的数据初始化操作start()方法init()方法执行结束后,start()方法紧接着被调用本方法是Applet的主体,在其中可以执行一些任务或启动
9、相关的线程来执行任务 当包含Applet的浏览器窗口最小化之后再次恢复显示,或者从浏览器的另一个窗口切换回包含Applet的窗口时,start()方法也会被调用 通常用于完成诸如启动动画或演奏音乐之类的操作 Applet的方法stop()方法离开Applet所在页面时调用stop()方法,例如包含Applet的浏览器窗口被最小化或其他窗口被激活时 离开相关的页面时,Applet从“活跃”变为“不活跃”的状态,调用stop()方法可以停止消耗系统资源。Applet可利用stop()方法完成诸如停止播放动画或音乐之类的操作 destroy()方法当浏览器终止此Applet时,调用destroy()
10、方法。浏览器关闭时也会自动调用,以清除Applet所用的所有资源 Applet的运行 本身是一个AWT组件,具有一般AWT组件的图形绘制功能 , 也是一个容器,可以往其中添加其他的AWT组件三个与显示相关的方法 paint(),update()和repaint() , ponent类中声明 三个方法的关系 AWT thread(waiting)update():清空区域调用paint()paint()程序调用repaint()Exposure:遮盖、调整大小、最大最小化等三个显示相关的方法 paint( Graphics g )方法 首次被装载,以及每次窗口放大、缩小、刷新时调用 .由AWT线
11、程调用的,而不是由程序调用,当程序希望调用paint方法时,用repaint()方法 .必须尽量缩短paint()方法和update()方法的长度 update()方法update()方法用于更新图形。它首先清除背景,然后设置前景,再调用paint()方法。一般不要重写update()方法 repaint()方法repaint()方法主要用于重绘图形,通过调用update()方法来实现图形重绘的。当组件外形发生变化时,系统自动调用repaint()方法 appletviewerappletviewer是一个可运行Applet的Java应用程序 用appletviewer运行AppleHello
12、World.html $ appletviewer HelloWorld.html 指明了要运行的Applet是HelloWorld.class HTML与标记 标记语法 必选项,指定需要运行的Applet的文件名,该文件名也可使用aPackage.appletFile.class的形式。注意文件名前面不能有路径名 必选项,指定Applet显示区域的初始宽度和高度(用像素数表示) 可选项,为Applet文件指定URL 可选项,指定一段可替换文本,当浏览器能理解标记但不能运行Applet程序时,这段文本可作为提示显示出来。 可选项,为Applet指定一个名字,使得在同一浏览器窗口中运行的其他Ap
13、plet能够识别该Applet并可与之通信 可选项,指定Applet的对齐方式,可取值为left、right、top、texttop、middle、absmiddle、baseline、bottom和absbottom 可选项,指定Applet与周围文本的垂直间距和水平间距(用像素数表示) 可选项,为Applet指定参数(包括参数的名称和数值)。在Applet中可通过getParameter()方法得到相应的参数。 各间距参数 Java applet其它内容其它内容vspacehspace其它内容vspace其它内容heightwidthhspaceApplet参数的读取 通过中的标记为App
14、let指定参数 程序9-3 使用getParameter(String name)方法读取这个参数 getParameter()方法 getParameter()方法的参数为要读取的参数名称 .如果没有为getParameter()方法指定要读取的参数,则其返回值为null getParameter()方法的返回值类型为String ,如果需要其他类型的参数,必须对其进行转换 例如需要int型参数时,语句如下表示:int speed = Interger.parseInt(getParameter(speed) 程序9-4 程序9-4,设有代码存储在AppletPara.java中,在HTML
15、页面中获得参数p1的值,然后传送到Applet中,由显示方法显示出p1的内容 9-4.htmlApplet与URL 在 包中定义了一个URL类,该类用于描述网络上某一资源的地址Applet类中有两个方法可以返回URL对象 getDocumentBase()返回当前Applet所在的HTML文件的URL getCodeBase() 返回当前Applet所在目录的URL。除非在标记中指定了codebase,否则这个URL与HTML文件的URL是一致的 在Applet中显示图象 包java.awt、java.awt.image和java.applet中都提供了支持图象操作的类和方法 图象信息是封装在
16、抽象类Image中的。目前Java核心类包支持gif和jpeg两种格式的图象 类Image是一个抽象类,因此不能直接new出一个图象对象,需要采用特殊的方法载入或生成图象对象 Applet中图像显示 首先使用Applet类的getImage()方法装载一个Image对象,然后使用Graphics类的drawImage()方法将该对象画到屏幕上 getImage()方法 public Image getImage(URL url, String name) public Image getImage(URL url) url是路径,name是图像文件名 url直接包含了路径和文件名 Image
17、art = getImage(getDocumentBase, art.gif); 这条命令装载与HTML处于同一服务器目录的图像文件art.gif drawImage()方法 使用Graphics类的drawImage()方法可以将Image对象画到屏幕上 drawImage(Image img, int x, int y, ImageObserver observer) img表示要画的Image对象,x和y表示Image对象的位置,observer是绘图过程的监视器 observer的类型为ImageObserver。ImageObserver是java.awt.image包中的一个接口
18、,AWT中的Component类实现了该接口。因此Component类及其子类的实例都可以赋给observer参数,但较常用的是使用当前Applet,即用this作为参数 显示图像文件的Applet 程序9-5 在Applet中播放声音 使用Applet类的play() , URL参数就是HTML文件的URL,因此可以通过getDocumentBase()方法取得 public void play(URL url)public void play(URL url, String name) 播放与HTML文件处于同一服务器目录的bark.au文件 play(getDocumentBase(), bark.au) Applet播放声音例程 程序9-6在窗口中显示文本信息“Audio Test”并播放声音文件sound/cuckoo.au 另一种播放声音方法声音对象装入内存,然后进行播放。需要使用java.applet.AudioClip中的方法,事先需要取得一个AudioClip声音对象AudioClip声音对象使用java.applet.Applet类的getAudioClip()方法可以获得AudioClip声音对象 public AudioClip getAudioClip(URL url
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026苏州市六年级语文小升初分班考原创仿真卷-可打印含作文范文评分标准
- 2026ios资深面试题及答案
- 2026js高频率面试题及答案
- 2026memcached面试题及答案
- 高职建筑工程技术专业二年级《全塑胶跑道系统施工技术与质量管理》教案
- 2026年事业单位公开招聘综合应用能力(B类)试题及答案
- 初中物理九年级电与磁中考专题复习教案
- 初中二年级英语 Unit 5 What a Delicious Meal!单元整体教学设计
- 小学五年级数学《展开与折叠:构建空间观念的探究之旅》教学设计
- 小学五年级心理健康教育《言语有度成长无界:拒绝“背后蛐蛐”》教学设计
- 45186-2024限制快递过度包装要求
- 医院电梯施工组织方案
- 二次搬运施工方案及措施
- 重大风险管控知识培训课件
- 国开2025年《数据库应用技术》形考作业1-4答案
- 湘江战役教学课件
- 高中数学《人工智能数学基础》教案(2025-2026学年)
- GB/T 191-2025包装储运图形符号标志
- WeleUnitDiscoveringUsefulStructures句子基本结构课件-高中英语人教版
- 医保基金管理培训课件
- 设计人工合同范本
评论
0/150
提交评论