




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章Java的Applet编程,Java的Applet编程,2,主要内容,9.1JavaApplet概述Applet的生命周期Applet的绘图周期9.2实现一个简单的Applet程序Applet程序编写与编译将Applet嵌入Web网页Applet的执行9.3Applet生命周期状态切换举例9.4Applet的常用方法9.5Applet的安全限制作业,Java的Applet编程,3,9.1Javaapplet概述,Java小应用程序(JavaApplet)是使用Java语言编写的一段代码,它能够在浏览器环境中运行。Applet与Application地主要区别在于它们的执行方式不同:Application是使用命令行命令直接运行,从其main()方法开始运行的;而Applet则是在浏览器中运行的,首先必须创建一个HTML文件,通过编写HTML语言代码告诉浏览器载入何种Applet以及如何运行,再在浏览器中给出该HTML文件的URL地址即可,Applet本身的执行过程也较Application复杂。,Java的Applet编程,4,java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Paneljava.applet.Appletjavax.swing.JApplet,Java的Applet编程,5,1.编写一个Applet,编写一个Applet,必须首先从java.applet.Applet派生一个类,之前必须加上public:importjava.applet.*;publicclassSimpleAppletextendsApplet如果使用Swing组件编写applet,则applet必须扩展javax.swing.JApplet类来实现,以JApplet作为顶层容器,在其中加入Swing组件,从而保证所有的绘图和更新动作都能够正确地执行。,Java的Applet编程,6,2.Applet的程序结构,下面是一个简单的applet的程序结构。如图:publicclassSimpleJAppletextendsJAppletpublicvoidinit()publicvoidstart()publicvoidstop()publicvoiddestroy()publicvoidpaint(Graphicsg),Java的Applet编程,7,Java的Applet编程,8,编程时可按此结构进行这5个关键方法覆盖,但并不是每个applet都要覆盖这些方法,有些简单的applet可以一个方法也不覆盖。applet一开始运行,就会由浏览器或appletviewer自动启动两个线程周期。一个是生命周期,另一个是绘图周期。,Java的Applet编程,9,9.1.1Applet的生命周期,Java的Applet编程,10,Applet中没有main()方法。当Applet被浏览器运行时,init()、start()、stop()、destroy()方法等自动执行:init()方法:初始化,自动调用,只执行一次。本方法主要完成一些在Applet构造方法所不不能完成的工作。,Java的Applet编程,11,start()方法:初始化后,重入等都将自动调用。本方法是Applet的主体,在其中可以执行一些任务或启动相关的线程来执行任务。stop()方法:离开Applet所在页面时调用,以停止消耗系统资源。destroy()方法:浏览器关闭时自动调用,以清除Applet所用的所有资源。,Java的Applet编程,12,9.1.2Applet的绘图周期,applet程序中所采用的绘图机制主要涉及三个方法:paint()方法、update()方法和repaint()方法。update()方法和paint()方法都有一个Graphics类的对象作为参数。Graphics是画图的关键,它可以支持两种绘图:一种是基本的绘图,如:画线、矩形、圆等;另一种是加载并显示图像,主要用于动画制作。,Java的Applet编程,13,Applet绘图周期各方法之间的调用关系,Java的Applet编程,14,9.2实现一个简单的Applet程序,9.2.1Applet程序编写与编译1.Applet程序编写【例9.1】按照applet程序结构,编写一个简单的applet,即在applet上绘制“WelcometoJavaProgramming!”。源程序如下:/WelcomeApplet.javaimportjava.awt.Graphics;importjavax.swing.JApplet;,Java的Applet编程,15,publicclassWelcomeAppletextendsJAppletpublicvoidpaint(Graphicsg)super.paint(g);/调用超类JApplet的paint方法/在坐标为(25,25)的位置显示字符串g.drawString(WelcometoJavaPrograming!,25,25);,Java的Applet编程,16,【程序说明】Javaapplet中不需要main方法,要求程序中有且必须有一个类是系统类Applet(在java.awt包中)或JApplet(在java.swing包中)的子类。paint方法表示它将在WWW所显示的Web页面需要重画时(窗口移动或放缩时)被浏览器自动调用并执行。,Java的Applet编程,17,2.Applet的编译,如同应用程序的类,执行前必须对applet类进行编译,在命令行状态使用javac命令对WelcomeApplet.java进行编译,得到WelcomeApplet.class类文件。命令如下:javacWelcomeApplet.java,Java的Applet编程,18,9.2.2将applet嵌入Web网页,applet必须嵌入Web页,并在applet容器(appletviewer或浏览器)中才能运行,所以在执行applet之前,必须创建HTML文件,指明applet容器应装入和执行哪个applet。通常HTML文档以“.html”或者“.htm”扩展名结尾。标记用于在Web页面中嵌入applet,头标签与尾标签必须成对出现。下面介绍与Applet程序有关的HTML文件标记。,Java的Applet编程,19,HTML中applet标记的使用,.alternateHTML,Java的Applet编程,20,ARCHIVE=archiveListFile1,File2,给出了Applet类及其运行时所需的类所在的卷文件名。CODEBASE=codebaseURL指明Applet类文件所在URL基址,在Applet类中,方法getCodeBase()可以获取该属性。如果这个属性没有指明,那么Applet类文件必须与包含它的HTML页面在同一个地方,方法getCodeBase()返回的值与getDocumentBase()相同。CODE=appletFile指明需要运行的Applet类文件(.class文件),该文件是与codebaseURL相关的。NAME=appletInstanceName给出了Applet类运行时的实例名,这使得同处于一个页面的不同Applet之间能够相互通信。方法getAppletContext()可以得到同一个方页面中其它Applet类。,Java的Applet编程,21,ALT=alternateText如果浏览器支持Applet但不能运行它,就显示alternateText中所给出的文字。否则就忽略它。WIDTH=pixelsHEIGHT=pixelsApplet在浏览器中所显示的高度和宽度(以象素为单位)。ALIGN=alignmentApplet在浏览器中显示时的对齐方式,其含义与效果与图片在HTML中的一样。其取值有:left,right,top,texttop,middle,absmiddle,baseline,bottom,absbottom。VSPACE=pixelsHSPACE=pixelsApplet在浏览器中显示时上下、左右要预留的高度和宽度,其含义与效果与图片在HTML中的一样。,Java的Applet编程,22,属性可以使得Applet能够从页面中获取所需的参数。Applet可以用其方法getParameter()获取属性指定的参数。属性的作用与应用程序中main()方法里参数Stringargs的作用是一样的。一个好的小应用程序,应该提供用户能够设置外部参数的功能,以使得用户能够根据自己的需要来应用它。方法getParameterInfo()可以得到有关属性的说明信息。alternateHTML如果浏览器不支持Applet,就解释alternateHTML所给出的HTML代码。否则就忽略它。,Java的Applet编程,23,最简形式,则welcome.html文档内容如下:在这里,通过codebase属性指明要装载的类文件WelcomeApplet.class位于当前目录的class子目录下。,Java的Applet编程,24,9.2.3Applet的执行,Java的Applet编程,25,执行applet的两种方法,方法1.使用appletviewer运行applet运行applet的一种方法是使用JDK的内置命令appletviwer。在命令行状态,输入命令:appletviewerwelcome.html方法2.使用浏览器运行applet运行applet的另一种方法是使用支持java浏览器。此处使用IE浏览器。在地址栏中输入HTML文档的URL地址即可演示,Java的Applet编程,26,9.3applet生命周期状态切换举例,Applet生命周期的状态切换,可参考教材中【例9.2】,Java的Applet编程,27,9.4Applet的常用方法,URL说明URL(UniformResourceLocator,统一资源定位符),它是Internet和WWW的门户,用来标识Internet资源的地址。通常情况下,资源表示一个文件,如一个HTML文档、一个图像文件或一个声音片断等。URL的通用格式是::/URL类(全名.URL)有多种构造方法来描述各种类型的URL。,Java的Applet编程,28,(1)绝对URL的构造方法:URL(Stringspec)例:URLurl=newURL(“,Java的Applet编程,29,9.4.1获取Applet的有关信息,getDocumentBase():返回包含该Applet对象Web页面的地址getCodeBase():返回当前applet所在的URLgetParameter(Stringtarget)提取HTML文件中名为target的参数的值返回由HTML文件所提供的参数信息。Applet提供了从Web页面文件中提取参数的方法,可以在HTML文件中通过标记设置一些参数供Applet使用。例如有如下的HTML代码:,Java的Applet编程,30,9.4.2获取多媒体文件,1.getImage(URLbase,Stringtarget):返回网址base中名为target的图像getImage方法将Image加载到applet中,此方法有两个参数:图像文件的位置和图像文件名。第1个参数,通常是由applet的getDocumentBase或getCodeBase方法返回的一个URL,表示图像在Internet中的位置(如果applet是从自己的计算机上加载的,则返回图像在计算机中的位置)。,Java的Applet编程,31,2.getAudioClip(URLbase,Stringtarget):返回地址base中名为target的声音返回由参数所指定的AudioClip对象。AudioClip是一个音频剪辑对象的接口,它提供了音频对象的抽象控制。无论URL指定的音乐文件是否存在,getAudioClip()方法都会很快返回值,因为音频文件要等到播放的时候才下载。url参数指定的必须是一个绝对地址。,Java的Applet编程,32,AudioClip是一个接口,因此不能直接用new创建一个声音对象实例,它必须和Applet类一起使用,利用Applet类提供的声音装载方法载入一个声音文件,形成一个声音对象实例。之后利用接口AudioClip提供的三个方法进行声音操作:publicvoidplay():播放一遍publicvoidloop():循环播放publicvoidstop():停止播放,Java的Applet编程,33,【例9.3】设计一个applet,加载声音、图像并循环播放、显示。声音、图像文件名利用getParameter方法由HTML文件获得。屏幕效果如图所示。,Java的Applet编程,34,9.4.3同页applet间的通信,(1)publicAppletContextgetAppletContext()该方法可得到当前运行页的环境上下文AppletContext对象。通过AppletContext对象,可以得到当前小应用程序运行环境的信息。AppletContext是一个接口,其中定义了一些方法可以得到当前页的其它小应用程序,进而实现同页小应用程序之间的通信。(2)publicabstractAppletgetApplet(Stringname)此方法可取得名为name的Applet对象。(3)p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麦当劳调研报告汇报
- 教学基地工作总结
- 员工时间管理企业培训
- 公司组织安全培训意义课件
- 静脉输液后青记的护理课件
- 公司级安全教育培训内容课件
- 公司级安全培训职责
- 项目拓展初期汇报
- 营养不良病人的护理
- 舞蹈线上成果汇报
- 室内设计施工图图例与规范-课件
- 品质品质脏污混料油盖改善报告注塑部课件
- 22G101系列图集常用点全解读
- 外研版初中英语单词总表(7~9)年级
- 商户二次装修管理方案及管控要点概述
- 液化气站年度安全教育培训计划及考试试题
- 大陆法系和英美法系的比较优质课件
- 金蝶云星空+V7.5-产品培训-电商与分销-返利管理
- 人教版:生命生态安全六年级上册教案
- 2023年溆浦县政务中心综合窗口人员招聘笔试模拟试题及答案解析
- 解除合同协议书简单版通用版(2篇)
评论
0/150
提交评论