已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java面向对象程序设计 第二版 第12章applet程序设计 教学目标 了解applet的工作原理掌握applet程序中主要方法的使用掌握创建和运行applet程序的方法掌握Applet标记的使用掌握Javaapplet与Javaapplication的区别了解applet在多媒体中的应用 引例 例12 1当首次启动JavaApplet小程序时 显示面板上显示字符串 Welcome 如图12 1 a 所示 当该Applet窗口被其它窗口遮挡后再次显示时 显示面板上显示字符串 Welcomeback 如图12 1 b 所示 请看下面的源代码 引例 续 引例 续 在命令控制台窗口中 将当前目录切换到Jpro12 1 html文件所在的目录 然后在命令行中输入 appletviewerJpro12 1 html 如图所示 引例 续 运行结果 applet的工作机制 applet的工作机制 续 编译好的字节码文件 class 保存在特定的WWW服务器上 而另外一个嵌入了该字节码文件名的HTML文件保存在同一个或另一个服务器上 当某一个浏览器向服务器请求下载嵌入了applet的文件时 该文件从WWW服务器上下载到客户端 由WWW浏览器解释HTML中的各种标记 当浏览器遇到嵌入applet标记的HTML文件时 它会根据applet的名字和位置自动将字节码从服务器上下载到本地 并利用浏览器本身的Java解释器执行该字节码文件 applet的层次结构 applet的生命周期 初始化init 启动start 终止stop 消亡destroy 退出浏览器 下载applet字节码并实例化 启动applet 用户离开applet所在页面 刷新或返回applet所在页面 applet的生命周期 续 applet生命周期是指applet从开始载入 运行到停止 消亡的整个过程 1 publicvoidinit 初始化该方法用于applet的初始化 当applet第一次加载时 该方法会被自动调用 在这个方法中 可以做一些必要的初始化工作 这些内容包括创建和初始化程序运行所需要的对象实例 把图形或字体载入内存 处理PARAM参数等 applet的生命周期 续 2 publicvoidstart 该方法是用来启动浏览器运行applet的主线程 调用init 方法将applet的初始化工作完成之后 start 方法会自动调用 当用户刷新包含applet的页面或者从其他页面返回包含applet的页面时 start 方法会被自动调用 start 方法可以被多次调用 这与init 方法是有区别的 基于这样的原因 可以把只调用一次的代码放在init 方法中 而不能放在start 方法中 3 publicvoidstop 该方法在用户离开包含applet的页面时会被自动调用 与start 方法相同 stop 方法也可以被多次调用 当stop 方法被调用时 将停止一些耗费系统资源的活动 如播放动画等 如果在applet中没有动画或者音乐文件的播放 可以不使用这个方法 applet的生命周期 续 4 publicvoiddestroy 当用户正常关闭浏览器时 浏览器会调用destroy 方法 该方法用于回收系统资源 如回收图形用户界面的系统资源 关闭连接等 至于applet实例本身 会由浏览器来负责从内存中清除 不需要在destroy 方法中清除 5 publicvoidpaint Graphicsg 该方法用于在Applet的界面上显示文字 图形和其他界面元素 方法中带有一个Graphics类参数 要将java awt Graphics包装入 这个Graphics类参数不需要程序员担心 浏览器会自动创建并将其传递给paint 方法 该方法也是浏览器可自动调用Applet类的方法 导致浏览器调用paint 方法的事件主要有如下三种 Applet被启动之后 将自动调用paint 来重新描绘自己的界面 Applet所在的浏览器窗口改变时 例如窗口被放大 缩小 移动或被系统的其他部分遮盖 覆盖后又重新显示在屏幕的最前方等 这些情况都要求Applet重画它的界面 此时浏览器就自动调用paint 方法来完成此项工作 Applet的其他相关方法被调用时 系统也会相应的调用paint 方法 例如 当repaint 方法被调用时 系统就首先调用update 方法将Applet实例所占用的屏幕空间清空 然后调用paint 方法重新绘制Applet的界面 applet的程序框架 applet的程序框架 续 如果在创建applet时 继承的是Applet类 主类的结构不发生改变 但在Applet中加入组件或绘制图形等方面有所变化 继承Applet类的小应用程序需要引用的包和类声明语句如下 importjava applet importjava awt publicclass子类名extendsApplet 总之applet的创建有两种方式 一种是使用JApplet类来实现 另一种是使用Applet类来实现的 随着Swing组件的广泛性 建议大家使用第一种方式 applet与HTML文件的配合 1 HTML中的Applet标记 applet与HTML文件的配合 续 2 向applet传递参数Javaapplication通过命令行接受用户参数 在applet中 该任务是通过在HTML文件中使用param标记中name和value属性向applet传递参数 在applet的定义中 使用方法getParameter 来读取name参数提供的value 由于在HTML文件和applet之间传递的参数是以字符串形式表示的 因此在使用某些特殊类型的参数前应该将其强制转化成特定的数据类型 applet的执行 Javaapplet程序执行方式有两种方式 1 在Web浏览器中执行applet必须要嵌入到HTML文档中 就可以在支持JavaApplet的浏览器中直接查看applet的结果 即只需双击嵌入了Applet的HTML页面即可运行 这里的JavaApplet浏览器是指可以运行包含Applet的HTML文件的一切软件系统 MicrosoftInternetExplorer NetscapeNavigator等支持Java的web浏览器都是Applet浏览器 JavaApplet都可以在其中运行 2 使用appletviewer命令执行Sun公司的JDK中附带有一个专为查看applet而设计的工具appletviewer 它使得用户无须使用web浏览器就可直接运行applet appletviewer能从HTML文件中抽取出 标签 然后仅仅运行和这个applet相关的信息 其他内容将不会被显示 appletviewer通过命令行方式运行 运行时会产生一个applet窗口 用于显示执行结果 另外 要制定一个嵌入applet字节码的HTML文件名或URL 使得applet可以在指定区域显示和执行 具体命令格式如下 appletviewer applet与application 1 Javaapplication程序是独立完整的程序 Javaapplet程序是在WWW浏览器环境下运行 即不是完整的独立运行程序 2 运行方式上 Javaapplication程序通过在命令行调用独立的解释器软件即可运行 运行Javaapplet程序的解释器不是独立的软件 而是嵌在WWW浏览器中作为浏览器软件的一部分 运行Applet程序时 必须把它嵌在HTML中并激活浏览器中的解释器 或者调用一些能够模拟浏览器环境的软件 如AppletViewer applet与application 续 3 程序结构上 Javaapplication程序的主类必须有一个main 方法 这是Javaapplication程序执行的入口点 Javaapplet程序中不一定包含main 方法 但是Javaapplet程序的主类必须是类库中已定义好的类Applet或JApplet的子类 由于JavaApplet不需要有main 方法作为程序的入口点 JavaApplet更多地是体现状态和状态之间的切换 而不是固定的顺序化的执行过程 4 程序编写组成上 Javaapplet程序可以直接利用浏览器或者appletviewer运行图形用户界面 而Javaapplication程序必须另外书写专门代码来创建自己的图形界面 因为applet是一种可在浏览器中执行的小型Java程序 而大部分执行applet所需的图形支持环境已内建或以嵌入的方式放在浏览器中 Applet是继承Panel的 即Applet是一种Panel 所以编写applet时 并需要去作一个Frame来展示图形的部分 浏览器自然会产生一个Panel作为图形接口的容器 Javaapplication若要图形接口 就须编写有Frame或JFrame的实例作为外面的容器 applet与多媒体技术 1 applet中加载图片的方法Java特别提供了java awt Image类来管理与图像文件有关的信息 因此执行与图像文件有关的操作时需使用import引用这个类 Applet类中提供了getImage 方法将准备好的图像文件装载到applet中 但必须首先指明图像文件所存储的位置 GetImage 方法的调用格式有以下两种 这两种调用格式的返回值都是Image对象 ImagegetImage URLurl ImagegetImage URLurl Stringname 类URL代表一个统一资源定位符 它是指向互联网资源的指针 资源可以是简单的文件或目录 也可以是对更为复杂的对象的引用 例如对数据库或搜索引擎的查询 applet与多媒体技术 续 2 applet中加载声音的方法Java编程语言也具有播放音频文件的方法 这些方法在java applet AudioClip类中 利用Java2中 可以播放WAV AIFF MIDI AU和RMT格式的文件 播放音频文件的最简单的方式是通过applet的play 方法 有两个形式 play URLsoundDirectory StringsoundFile play URLsoundURL applet与多媒体技术 续 3 动画的生成和播放Java语言中的动画制作步骤是 第一步 在屏幕上显示动画的第一帧 也就是第一幅画面 第二步 每隔很短的时间再显示另外一帧 如此往复 具体的实现过程是系统去调用repaint 方法来完成重画任务 而repaint 方法又去直接调用update 方法 update 方法目的是先清除整个applet区域里的内容 然后再调用paint 方法 从而完成了一次重画工作 这里涉及有关多线程的概念和工作原理 将在后面章节介绍 applet多媒体应用实例 程序分析 本例是涉及图像显示 声音以及动画播放效果的applet程序 在图片显示中利用getImage getCodeBase ittoolbox gif 来加载图片ittoolbox gif 而getCodeBase 是用来取得applet程序所在的目录 需要将ittoolbox gif与Jpro12 6 java必须置于同一个目录下才能运行 在动画的播放设计涉及到多线程思想 即通过实现Runnable接口来实现多线程 然后声明一个Thread类型的实例变量 该实例变量用来存放新的线程对象 其次覆盖start 方法 在start 方法中需要生成一个新线程并启动这个线程 再将原来start 方法中的主循环代码放入run 方法 最后在paint 方法里 利用drawImage img 100 150 this 把img加载 并把图像的左上角置于 100 150 处 这里的this关键字代表图片所显示的区域为目前的这个applet 利用play 方法可以将声音播放一遍 但若想循环播放声音 就需要用到功能更强大的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024个人的简单借款合同
- 国际贸易协议样本
- 厂房租赁合同范例
- 特色农产品胡柚购销合同法律问题探讨
- 共同投资开设武术馆协议
- 标准入职协议书范例
- 旅行社与导游劳动合同范本
- 2023年高考地理第一次模拟考试卷-(湖南A卷)(全解全析)
- 房地产代理合同模板
- 2024年建筑渣土运输合同范文
- 山西省太原市2024-2025学年高三上学期期中物理试卷(含答案)
- 酒店岗位招聘面试题与参考回答2025年
- (统编2024版)道德与法治七上10.1爱护身体 课件
- GB/T 30391-2024花椒
- 供电线路维护合同
- 胸部术后护理科普
- 鞋子工厂供货合同模板
- 2024码头租赁合同范本
- 木材采运智能决策支持系统
- 【产业图谱】2024年青岛市重点产业规划布局全景图谱(附各地区重点产业、产业体系布局、未来产业发展规划等)
- 上海市市辖区(2024年-2025年小学四年级语文)部编版期末考试(下学期)试卷及答案
评论
0/150
提交评论