1 / 29

Java 技术与应用

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基础知识. ♂.

africa
Download Presentation

Java 技术与应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java技术与应用 Applet (第11章) 西安交大 卫颜俊 2008年12月 电子信箱:Mr.Java@163.com QQ: 610568018 网站: 202.117.58.97/java

  2. 主要内容 • Applet基础知识 • Applet可视化程序设计 • Applet的多媒体程序设计 • Applet高级程序设计 • Applet与浏览器的通讯 • Applet之间的通讯 • Applet的打包和包的扩展 • Applet的安全性限制♂

  3. Applet基础知识

  4. Applet在HTML中的一般格式 <Applet CODEBASE = 网址 ARCHIVE=Applet打包文件名 CODE = 字节码文件名 WIDTH =宽度 HEIGHT = 高度 ALIGN={LEFT,RIGHT,TOP,BOTTOM,MIDDLE} HSPACE=水平间隔 VSPACE=垂直间隔 NAME=Applet名字 ALT=文字 > <PARAMNAME =参数名 VALUE =参数值> ...... </Applet>♂

  5. Applet的生命周期 • 通过构造方法生成对象, • 进入其生命周期之中 • 主要涉及到Applet类或JApplet子类的方法 • init初始状态 • start运行状态 • stop停止状态 • destroy消亡状态♂

  6. Applet的生命周期 • 构造方法在init方法之前进行。 • init方法一般在创建Applet对象之后仅执行一次,进行一些一次性的初始化操作,当执行完init方法以后进入初始状态,诸如处理由浏览器传递的参数、添加组件、加载图像和音频文件等。 • 在调用完init方法之后,将自动调用start方法进入运行状态,start方法一般执行多次,当浏览器从最小化还原为正常窗口,或者是返回该页面时执行。♂

  7. Applet的生命周期 • 但当Applet程序所在的浏览器最小化或者转入其它页面时,立即执行stop方法进入停止状态,stop方法一般也多次执行,此时如果重新激活浏览器,则Applet程序重新调用start方法又进入运行状态。 • 最后当Applet程序处于停止状态并关闭浏览器时,则它调用destroy方法释放资源并进入消亡状态,destroy方法在stop之后执行。♂

  8. Applet的功能 • Applet既是组件又是容器,默认为FlowLayout布局 • 完成图形绘制、字体、颜色控制、组件布局和事件处理等可视化设计 • 进行声音、图片和动画等多媒体程序设计 • 线程技术、数据库和网络技术也都可以应用在Applet中,从而能够方便地进行远程的人机交互及网络交流。♂

  9. Applet的类层次 • Applet位于java.applet包 • ♂

  10. Applet类的常用方法

  11. 【例11-1】基本Applet例子 题目: 在控制台显示Applet的各个生命周期方法的调用顺序。                     算法简述: 首先编写HTML网页文件,并在<Applet>和</applet>标记之间指定Applet字节码文件名、宽度和高度以及参数;然后对各个生命周期方法的调用次数计数,并根据次数的多少绘制若干个不同颜色的圆形。♂

  12. Applet可视化程序设计 Applet的可视化程序设计与AWT和Swing的非常相似 ♂

  13. Applet的多媒体程序设计 • 图像获取通过Applet类的getImage方法, • 图像显示使用java.awt.Graphics的drawImage方法, • 在图像显示的过程中需要用到ImageObserver接口,目的在于当构造Image对象时,接收有关Image是否装载好等一些异步更新信息通知,Applet 类已经实现了该接口。 ♂

  14. 音频获取通过Applet的getAudioClip方法, • 音频播放使用java.awt.Graphics的AudioClip接口的play或loop方法,其中,AudioClip接口用于播放音频剪辑,而多个AudioClip对象能够同时播放由多种声音混合在一起的合成声音, • 音频停止播放使用java.awt.Graphics的AudioClip接口的stop方法 ♂

  15. 【例11-2】图像显示与移动 算法简述: • 首先通过Applet类的getImage方法获取Web服务器上的一张图像文件对应的图像对象; • 然后在paint方法中使用Graphics类的drawImage方法显示图像; • 最后增加Applet类的事件监听器,当鼠标按下并且鼠标坐标位于图像区域之内时,记录下鼠标按下标志,当鼠标拖动时将图像显示的新坐标设为鼠标坐标并刷新Applet窗口,当鼠标释放时将鼠标按下标志撤销。   ♂

  16. 【例11-3】声音播放 算法简述: • 在Applet窗口中放置一个编辑框,用于输入音频文件名; • 放置两个按钮,分别进行循环播放和停止播放功能,增加按钮动作事件监听器,当按了第一个按钮时,取得音频文件文件名,并使用Applet类的getAudioClip方法获取音频剪辑,然后使用loop方法循环播放,当按了第二个按钮时,使用stop方法停止播放。   ♂

  17. Applet高级程序设计 Applet小程序内部可以完成各式各样的功能,包括多线程、多媒体、数据库、网络和分布式程序设计。 此外,Applet小程序还能够与外界进行直接通讯,比如与所在浏览器之间的通讯,以及与位于同一网页中的其它Applet小程序进行通讯。 ♂

  18. Applet与浏览器的通讯 • 在Applet类中提供了许多与其所在浏览器或网页进行通讯的方法,除了上面几节介绍过的 getImage、getAudioClip和getParameter之外, 还有以下几种: • AppletContext getAppletContext() 取得Applet程序环境。 • URL getCodeBase() 获得Applet的URL地址。 • URL getDocumentBase() 获得Applet所在网页的URL地址。 • void showStatus(String msg) 在浏览器窗口的状态栏显示信息。              ♂

  19. 【例11-4】 题目: 使用Applet建立常用网站列表,列表内容来自网页参数,并且能够在列表中使用个鼠标导航每一个网站                      算法简述: 在网页中的<applet> 与</applet >标记之间放置<param>标记,定义常用该网站的网址,在Applet小程序中使用getParameter方法取得这些参数,并将加入列表框(List组件)中,增加列表框的鼠标点击事件监听,当点击鼠标时,使用showDocument方法进入网站首页。♂

  20. Applet之间的通讯 • Applet小程序还可以与处于同一网页中的其它Applet进行通讯,具体步骤如下: • 首先通过getAppletContext()取得Applet程序环境,即AppletContext接口的对象, • 通过此对象可以得到当前小应用程序运行环境的信息,查询同页中其它小应用程序的情况,进而实现同页小应用程序之间的通讯。♂

  21. AppletContext接口

  22. 【例11-5】 题目: 设计英文到中文的翻译程序,包含两个Applet,当用户在第1个Applet程序输入英文单词时,如果在第2个Applet程序中的词典中包含该单词,则显示其中文意思;否则请用户在第1个Applet程序中输入中文意思并加入词典中。 ♂

  23. 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/ .♂

  24. “货单”文件格式: • 货单文件版本: Manifest-Version: 1.0 • 绑定的主类名: Main-Class: classname • 下载扩展: Class-Path: servlet.jar infobus.jar acme/beans.jar ♂

  25. Applet的包扩展 • 为了简化Application应用程序和Applet小应用程序使用包文件的手续,简化环境配置和类的频繁下载,Java提供了将jar文件放在JRE指定的目录或将多个jar文件级联等两种扩展手段,分别称为本地安装扩展和网络下载扩展。 ♂

  26. 所谓本地安装扩展就是将包文件拷贝到“jre\lib\ext”目录或“jre\ext”目录或当前目录,使得本机上任何位置的类都可以使用包中的类;所谓本地安装扩展就是将包文件拷贝到“jre\lib\ext”目录或“jre\ext”目录或当前目录,使得本机上任何位置的类都可以使用包中的类; • 所谓网络下载扩展一般是对Applet来说的,即在一个包文件的货单文件中通过“Class-Path:”标记指明另一个包名,等第一个包中的Applet在运行过程中一旦用到第二个包中的类时,才将第二个包下载到本机上以供使用。 ♂

  27. 【例11-6】 题目: Applet打包   ♂

  28. Applet的安全性限制 • 不能访问本地文件内容及其文件属性 • 不能调用本地的应用程序和运行时的动态连接库 • 不能访问本地或其它网站上的数据库 • 不能与其它网站进行网络连接等 • Java系统提供了安全性策略授权机制,只有经过这种授权机制的认可,Applet小程序才可以突破以上的那些限制,另外JDK还提供了策略工具policytool来管理各种授权 ♂

  29. 本讲结束! 谢谢!

More Related