版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第12章applet程序设计,Java面向对象程序设计(第二版),第12章applet程序设计,第12章 applet程序设计,第12章applet程序设计,教学目标,了解applet的工作原理 掌握applet程序中主要方法的使用 掌握创建和运行applet程序的方法 掌握Applet标记的使用 掌握Java applet与Java application的区别 了解applet在多媒体中的应用,第12章applet程序设计,引例,例12.1 当首次启动Java Applet小程序时,显示面板上显示字符串Welcome!,如图12-1(a)所示;当该Applet窗口被其它窗口遮挡后再次显示时
2、,显示面板上显示字符串Welcome back!,如图12-1(b)所示。请看下面的源代码。,第12章applet程序设计,引例(续),第12章applet程序设计,引例(续),在命令控制台窗口中,将当前目录切换到Jpro12_1.html文件所在的目录,然后在命令行中输入:appletviewer Jpro12_1.html,如图所示。,第12章applet程序设计,引例(续),运行结果:,第12章applet程序设计,applet的工作机制,第12章applet程序设计,applet的工作机制(续),编译好的字节码文件(.class)保存在特定的WWW服务器上,而另外一个嵌入了该字节码文件
3、名的HTML文件保存在同一个或另一个服务器上。当某一个浏览器向服务器请求下载嵌入了applet的文件时,该文件从WWW服务器上下载到客户端,由WWW浏览器解释HTML中的各种标记。当浏览器遇到嵌入applet标记的HTML文件时,它会根据applet的名字和位置自动将字节码从服务器上下载到本地,并利用浏览器本身的Java解释器执行该字节码文件。,第12章applet程序设计,applet的层次结构,第12章applet程序设计,applet的生命周期,初始化init(),启动start(),终止stop(),消亡destroy(),退出浏览器,下载applet字节码并实例化,启动applet,
4、用户离开applet所在页面,刷新或返回applet所在页面,第12章applet程序设计,applet的生命周期(续),applet生命周期是指applet从开始载入、运行到停止、消亡的整个过程。 1. public void init()初始化 该方法用于applet的初始化。当applet第一次加载时,该方法会被自动调用。在这个方法中,可以做一些必要的初始化工作,这些内容包括创建和初始化程序运行所需要的对象实例,把图形或字体载入内存,处理PARAM参数等。,第12章applet程序设计,applet的生命周期(续),2. public void start() 该方法是用来启动浏览器运行
5、applet的主线程。调用init()方法将applet的初始化工作完成之后,start()方法会自动调用;当用户刷新包含applet的页面或者从其他页面返回包含applet的页面时,start()方法会被自动调用。 start()方法可以被多次调用,这与init()方法是有区别的。基于这样的原因,可以把只调用一次的代码放在init()方法中,而不能放在start()方法中。 3. public void stop() 该方法在用户离开包含applet的页面时会被自动调用。与start()方法相同,stop()方法也可以被多次调用。当stop()方法被调用时,将停止一些耗费系统资源的活动,如播
6、放动画等。如果在applet中没有动画或者音乐文件的播放,可以不使用这个方法。,第12章applet程序设计,applet的生命周期(续),4. public void destroy() 当用户正常关闭浏览器时,浏览器会调用destroy()方法。该方法用于回收系统资源,如回收图形用户界面的系统资源、关闭连接等。至于applet实例本身,会由浏览器来负责从内存中清除,不需要在destroy()方法中清除。 5.public void paint(Graphics g) 该方法用于在Applet的界面上显示文字、图形和其他界面元素。方法中带有一个Graphics类参数,要将java.awt.G
7、raphics包装入,这个Graphics类参数不需要程序员担心,浏览器会自动创建并将其传递给paint()方法。该方法也是浏览器可自动调用Applet类的方法,导致浏览器调用paint()方法的事件主要有如下三种: Applet被启动之后,将自动调用paint()来重新描绘自己的界面; Applet所在的浏览器窗口改变时,例如窗口被放大、缩小、移动或被系统的其他部分遮盖、覆盖后又重新显示在屏幕的最前方等。这些情况都要求Applet重画它的界面,此时浏览器就自动调用paint()方法来完成此项工作。 Applet的其他相关方法被调用时,系统也会相应的调用paint()方法。例如,当repain
8、t()方法被调用时,系统就首先调用update()方法将Applet实例所占用的屏幕空间清空,然后调用paint()方法重新绘制Applet的界面。,第12章applet程序设计,applet的程序框架,第12章applet程序设计,applet的程序框架(续),如果在创建applet时,继承的是Applet类,主类的结构不发生改变,但在Applet中加入组件或绘制图形等方面有所变化。继承Applet类的小应用程序需要引用的包和类声明语句如下: import java.applet.*; import java.awt.*; public class 子类名extends Applet . 总
9、之applet的创建有两种方式。一种是使用JApplet类来实现,另一种是使用Applet类来实现的。随着Swing组件的广泛性,建议大家使用第一种方式。,第12章applet程序设计,applet与HTML文件的配合,1. HTML中的Applet标记 . ,第12章applet程序设计,applet与HTML文件的配合(续),2. 向applet传递参数 Java application通过命令行接受用户参数,在applet中,该任务是通过在HTML文件中使用param标记中name和value属性向applet传递参数。在applet的定义中,使用方法getParameter()来读取n
10、ame参数提供的value。由于在HTML文件和applet之间传递的参数是以字符串形式表示的,因此在使用某些特殊类型的参数前应该将其强制转化成特定的数据类型。,第12章applet程序设计,applet的执行,Java applet程序执行方式有两种方式: 1.在Web浏览器中执行 applet必须要嵌入到HTML文档中,就可以在支持Java Applet的浏览器中直接查看applet的结果,即只需双击嵌入了Applet的HTML页面即可运行。这里的Java Applet浏览器是指可以运行包含Applet的HTML文件的一切软件系统。Microsoft Internet Explorer、N
11、etscape Navigator等支持Java的web浏览器都是Applet浏览器,Java Applet都可以在其中运行。 2.使用appletviewer命令执行 Sun公司的JDK中附带有一个专为查看applet而设计的工具appletviewer。它使得用户无须使用web浏览器就可直接运行applet。appletviewer能从HTML文件中抽取出”标签,然后仅仅运行和这个applet相关的信息,其他内容将不会被显示。 appletviewer通过命令行方式运行,运行时会产生一个applet窗口,用于显示执行结果。另外,要制定一个嵌入applet字节码的HTML文件名或URL,使得
12、applet可以在指定区域显示和执行。具体命令格式如下: appletviewer ,第12章applet程序设计,applet与application,1Java application程序是独立完整的程序。Java applet程序是在WWW浏览器环境下运行,即不是完整的独立运行程序。 2运行方式上,Java application程序通过在命令行调用独立的解释器软件即可运行。运行Java applet程序的解释器不是独立的软件,而是嵌在WWW浏览器中作为浏览器软件的一部分。运行Applet程序时,必须把它嵌在HTML中并激活浏览器中的解释器,或者调用一些能够模拟浏览器环境的软件,如App
13、letViewer。,第12章applet程序设计,applet与application(续),3程序结构上,Java application程序的主类必须有一个main()方法,这是Java application程序执行的入口点。Java applet程序中不一定包含main()方法,但是Java applet程序的主类必须是类库中已定义好的类Applet或JApplet的子类。由于Java Applet不需要有main()方法作为程序的入口点,Java Applet更多地是体现状态和状态之间的切换,而不是固定的顺序化的执行过程。 4程序编写组成上,Java applet程序可以直接利用浏
14、览器或者appletviewer运行图形用户界面,而Java application程序必须另外书写专门代码来创建自己的图形界面。因为applet是一种可在浏览器中执行的小型Java程序。而大部分执行applet所需的图形支持环境已内建或以嵌入的方式放在浏览器中。Applet是继承Panel的。即Applet是一种Panel。所以编写applet时,并需要去作一个Frame来展示图形的部分。浏览器自然会产生一个Panel作为图形接口的容器。Java application若要图形接口,就须编写有Frame或JFrame的实例作为外面的容器。,第12章applet程序设计,applet与多媒体技
15、术,1.applet中加载图片的方法 Java特别提供了java.awt.Image类来管理与图像文件有关的信息,因此执行与图像文件有关的操作时需使用import引用这个类。Applet类中提供了getImage()方法将准备好的图像文件装载到applet中,但必须首先指明图像文件所存储的位置。GetImage()方法的调用格式有以下两种,这两种调用格式的返回值都是Image对象。 Image getImage(URL url) Image getImage(URL url,String name) 类 URL 代表一个统一资源定位符,它是指向互联网资源的指针。资源可以是简单的文件或目录,也可
16、以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。,第12章applet程序设计,applet与多媒体技术(续),2.applet中加载声音的方法 Java编程语言也具有播放音频文件的方法,这些方法在java.applet.AudioClip类中。利用Java 2中,可以播放WAV、AIFF、MIDI、AU和RMT格式的文件。 播放音频文件的最简单的方式是通过applet的play()方法,有两个形式, play(URL soundDirectory, String soundFile); play(URL soundURL);,第12章applet程序设计,applet与多媒体技术(
17、续),3动画的生成和播放 Java语言中的动画制作步骤是: 第一步,在屏幕上显示动画的第一帧(也就是第一幅画面); 第二步,每隔很短的时间再显示另外一帧,如此往复。 具体的实现过程是系统去调用repaint( )方法来完成重画任务,而repaint( )方法又去直接调用update( )方法。update( )方法目的是先清除整个applet区域里的内容,然后再调用paint( )方法,从而完成了一次重画工作。这里涉及有关多线程的概念和工作原理,将在后面章节介绍。,第12章applet程序设计,applet多媒体应用实例,第12章applet程序设计,程序分析,本例是涉及图像显示、声音以及动画
18、播放效果的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()方法可以将声音播放一遍,但若想循环播放声音,就需要用到功能更强大的AudioClip类。,第12章applet程序设计,实例,例12.7 在app
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QES三体系一体化文件及标准条款对照表
- 2025学年浙江杭州重点中学高一下学期期中生物试题含答案
- 养老中心规章制度
- 北京市顺义区2024-2025学年高三地理下学期3月一模试题【含答案】
- 保密知识试卷及解析
- 结构工程师抗震设计试题及解析
- 材料员试卷及分析
- 医学执业医师临床助理试卷及详解
- T-ZJATA 0031-2025 薄膜压力传感器 压力-电信号标定 试验方法
- 胆囊结石围手术期护理专项试题
- 2026语文新教材 2026部编版三年级语文下册第五单元 《习作:奇妙的想象》课件
- 2026年交管12123驾照学法减分完整版练习题库及1套完整答案详解
- 2025中国经皮冠状动脉介入治疗指南课件
- 2026福建福州首邑产业投资集团有限公司招聘19人考试模拟试题及答案解析
- 江苏交通控股有限公司笔试内容
- 成都环境投资集团有限公司下属成都市兴蓉环境股份有限公司2026年春季校园招聘(47人)笔试历年参考题库附带答案详解
- 国家义务教育质量监测八年级劳动素养综合测试题
- (二模)温州市2026届高三第二次适应性考试地理试卷(含答案)
- 2026年广东汕头市中考历史试题(附答案)
- 《公路水运工程施工安全标准化指南》
- 酒店电梯应急演练方案
评论
0/150
提交评论