290 likes | 523 Views
Java 技术与应用. Applet ( 第 11 章 ). 西安交大 卫颜俊 2008 年 12 月 电子信箱: Mr.Java@163.com QQ: 610568018 网站 : 202.117.58.97/java. 主要内容. Applet基础知识 Applet可视化程序设计 Applet的多媒体程序设计 Applet 高级程序设计 Applet 与浏览器的通讯 Applet 之间的通讯 Applet 的打包和包的扩展 Applet 的安全性限制 ♂. Applet基础知识. ♂.
E N D
Java技术与应用 Applet (第11章) 西安交大 卫颜俊 2008年12月 电子信箱:Mr.Java@163.com QQ: 610568018 网站: 202.117.58.97/java
主要内容 • Applet基础知识 • Applet可视化程序设计 • Applet的多媒体程序设计 • Applet高级程序设计 • Applet与浏览器的通讯 • Applet之间的通讯 • Applet的打包和包的扩展 • Applet的安全性限制♂
Applet在HTML中的一般格式 <Applet CODEBASE = 网址 ARCHIVE=Applet打包文件名 CODE = 字节码文件名 WIDTH =宽度 HEIGHT = 高度 ALIGN={LEFT,RIGHT,TOP,BOTTOM,MIDDLE} HSPACE=水平间隔 VSPACE=垂直间隔 NAME=Applet名字 ALT=文字 > <PARAMNAME =参数名 VALUE =参数值> ...... </Applet>♂
Applet的生命周期 • 通过构造方法生成对象, • 进入其生命周期之中 • 主要涉及到Applet类或JApplet子类的方法 • init初始状态 • start运行状态 • stop停止状态 • destroy消亡状态♂
Applet的生命周期 • 构造方法在init方法之前进行。 • init方法一般在创建Applet对象之后仅执行一次,进行一些一次性的初始化操作,当执行完init方法以后进入初始状态,诸如处理由浏览器传递的参数、添加组件、加载图像和音频文件等。 • 在调用完init方法之后,将自动调用start方法进入运行状态,start方法一般执行多次,当浏览器从最小化还原为正常窗口,或者是返回该页面时执行。♂
Applet的生命周期 • 但当Applet程序所在的浏览器最小化或者转入其它页面时,立即执行stop方法进入停止状态,stop方法一般也多次执行,此时如果重新激活浏览器,则Applet程序重新调用start方法又进入运行状态。 • 最后当Applet程序处于停止状态并关闭浏览器时,则它调用destroy方法释放资源并进入消亡状态,destroy方法在stop之后执行。♂
Applet的功能 • Applet既是组件又是容器,默认为FlowLayout布局 • 完成图形绘制、字体、颜色控制、组件布局和事件处理等可视化设计 • 进行声音、图片和动画等多媒体程序设计 • 线程技术、数据库和网络技术也都可以应用在Applet中,从而能够方便地进行远程的人机交互及网络交流。♂
Applet的类层次 • Applet位于java.applet包 • ♂
【例11-1】基本Applet例子 题目: 在控制台显示Applet的各个生命周期方法的调用顺序。 算法简述: 首先编写HTML网页文件,并在<Applet>和</applet>标记之间指定Applet字节码文件名、宽度和高度以及参数;然后对各个生命周期方法的调用次数计数,并根据次数的多少绘制若干个不同颜色的圆形。♂
Applet可视化程序设计 Applet的可视化程序设计与AWT和Swing的非常相似 ♂
Applet的多媒体程序设计 • 图像获取通过Applet类的getImage方法, • 图像显示使用java.awt.Graphics的drawImage方法, • 在图像显示的过程中需要用到ImageObserver接口,目的在于当构造Image对象时,接收有关Image是否装载好等一些异步更新信息通知,Applet 类已经实现了该接口。 ♂
音频获取通过Applet的getAudioClip方法, • 音频播放使用java.awt.Graphics的AudioClip接口的play或loop方法,其中,AudioClip接口用于播放音频剪辑,而多个AudioClip对象能够同时播放由多种声音混合在一起的合成声音, • 音频停止播放使用java.awt.Graphics的AudioClip接口的stop方法 ♂
【例11-2】图像显示与移动 算法简述: • 首先通过Applet类的getImage方法获取Web服务器上的一张图像文件对应的图像对象; • 然后在paint方法中使用Graphics类的drawImage方法显示图像; • 最后增加Applet类的事件监听器,当鼠标按下并且鼠标坐标位于图像区域之内时,记录下鼠标按下标志,当鼠标拖动时将图像显示的新坐标设为鼠标坐标并刷新Applet窗口,当鼠标释放时将鼠标按下标志撤销。 ♂
【例11-3】声音播放 算法简述: • 在Applet窗口中放置一个编辑框,用于输入音频文件名; • 放置两个按钮,分别进行循环播放和停止播放功能,增加按钮动作事件监听器,当按了第一个按钮时,取得音频文件文件名,并使用Applet类的getAudioClip方法获取音频剪辑,然后使用loop方法循环播放,当按了第二个按钮时,使用stop方法停止播放。 ♂
Applet高级程序设计 Applet小程序内部可以完成各式各样的功能,包括多线程、多媒体、数据库、网络和分布式程序设计。 此外,Applet小程序还能够与外界进行直接通讯,比如与所在浏览器之间的通讯,以及与位于同一网页中的其它Applet小程序进行通讯。 ♂
Applet与浏览器的通讯 • 在Applet类中提供了许多与其所在浏览器或网页进行通讯的方法,除了上面几节介绍过的 getImage、getAudioClip和getParameter之外, 还有以下几种: • AppletContext getAppletContext() 取得Applet程序环境。 • URL getCodeBase() 获得Applet的URL地址。 • URL getDocumentBase() 获得Applet所在网页的URL地址。 • void showStatus(String msg) 在浏览器窗口的状态栏显示信息。 ♂
【例11-4】 题目: 使用Applet建立常用网站列表,列表内容来自网页参数,并且能够在列表中使用个鼠标导航每一个网站 算法简述: 在网页中的<applet> 与</applet >标记之间放置<param>标记,定义常用该网站的网址,在Applet小程序中使用getParameter方法取得这些参数,并将加入列表框(List组件)中,增加列表框的鼠标点击事件监听,当点击鼠标时,使用showDocument方法进入网站首页。♂
Applet之间的通讯 • Applet小程序还可以与处于同一网页中的其它Applet进行通讯,具体步骤如下: • 首先通过getAppletContext()取得Applet程序环境,即AppletContext接口的对象, • 通过此对象可以得到当前小应用程序运行环境的信息,查询同页中其它小应用程序的情况,进而实现同页小应用程序之间的通讯。♂
【例11-5】 题目: 设计英文到中文的翻译程序,包含两个Applet,当用户在第1个Applet程序输入英文单词时,如果在第2个Applet程序中的词典中包含该单词,则显示其中文意思;否则请用户在第1个Applet程序中输入中文意思并加入词典中。 ♂
Applet的打包 • 打包格式: • jar {ctxui}[vfm0Me] [包文件] [清单文件] [入口点] [-C 目录] 文件1,文件2,.. 示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中: jar cvf classes.jar Foo.class Bar.class 示例 2:使用现有的清单文件 "mymanifest" 并 将 foo/ 目录中的所有文件归档到 "classes.jar" 中: jar cvfm classes.jar mymanifest -C foo/ .♂
“货单”文件格式: • 货单文件版本: Manifest-Version: 1.0 • 绑定的主类名: Main-Class: classname • 下载扩展: Class-Path: servlet.jar infobus.jar acme/beans.jar ♂
Applet的包扩展 • 为了简化Application应用程序和Applet小应用程序使用包文件的手续,简化环境配置和类的频繁下载,Java提供了将jar文件放在JRE指定的目录或将多个jar文件级联等两种扩展手段,分别称为本地安装扩展和网络下载扩展。 ♂
所谓本地安装扩展就是将包文件拷贝到“jre\lib\ext”目录或“jre\ext”目录或当前目录,使得本机上任何位置的类都可以使用包中的类;所谓本地安装扩展就是将包文件拷贝到“jre\lib\ext”目录或“jre\ext”目录或当前目录,使得本机上任何位置的类都可以使用包中的类; • 所谓网络下载扩展一般是对Applet来说的,即在一个包文件的货单文件中通过“Class-Path:”标记指明另一个包名,等第一个包中的Applet在运行过程中一旦用到第二个包中的类时,才将第二个包下载到本机上以供使用。 ♂
【例11-6】 题目: Applet打包 ♂
Applet的安全性限制 • 不能访问本地文件内容及其文件属性 • 不能调用本地的应用程序和运行时的动态连接库 • 不能访问本地或其它网站上的数据库 • 不能与其它网站进行网络连接等 • Java系统提供了安全性策略授权机制,只有经过这种授权机制的认可,Applet小程序才可以突破以上的那些限制,另外JDK还提供了策略工具policytool来管理各种授权 ♂
本讲结束! 谢谢!