版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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的工作机制www服务器www服务器www浏览器HTML文件…………..applet嵌入标记applet名…………..…………..…………..…………..下载HTML文件请求applet字节码下载applet字节码解释执行applet字节码请求HTML文件applet的工作机制(续)
编译好的字节码文件(.class)保存在特定的WWW服务器上,而另外一个嵌入了该字节码文件名的HTML文件保存在同一个或另一个服务器上。当某一个浏览器向服务器请求下载嵌入了applet的文件时,该文件从WWW服务器上下载到客户端,由WWW浏览器解释HTML中的各种标记。当浏览器遇到嵌入applet标记的HTML文件时,它会根据applet的名字和位置自动将字节码从服务器上下载到本地,并利用浏览器本身的Java解释器执行该字节码文件。applet的层次结构java.lang.Objectjava.awt.Componetjava.awt.Containerjava.awt.Paneljava.applet.Appletjava.swing.JAppletapplet的生命周期初始化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标记<appletcode=appletFile.classwidth=pixelsheight=pixels[codebase=codebaseURL][alt=altrtnateText][name=appletInstanceName][align=alignment][vspace=pixels][hspace=pixels]>[<paramname=appletAttribute1value=value>]{<paramname=appletAttribute2value=value>]...</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>”标签,然后仅仅运行和这个applet相关的信息,其他内容将不会被显示。appletviewer通过命令行方式运行,运行时会产生一个applet窗口,用于显示执行结果。另外,要制定一个嵌入applet字节码的HTML文件名或URL,使得applet可以在指定区域显示和执行。具体命令格式如下:
appletviewer<HTMLfile或URL>applet与application1.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()是用来取得a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论