Java课程讲义(No.12).ppt_第1页
Java课程讲义(No.12).ppt_第2页
Java课程讲义(No.12).ppt_第3页
Java课程讲义(No.12).ppt_第4页
Java课程讲义(No.12).ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java面向对象程序设计,主讲教师:郑大庆上海财经大学信息管理与工程学院,第十二讲Applet基础,2,上海财经大学信息管理与工程学院,Applet基本概念编写Applet在HTML页中包含AppletApplet中的事件处理Applet的重要成员方法Applet与多媒体Applet与外界通讯Applet安全模式,主要内容,3,上海财经大学信息管理与工程学院,能够嵌入到HTML页面中,并可以下载到浏览器中运行的java类Applet的主要作用:增强web中的用户交互功能,如计算器。渲染效果,增加web的多样化。例1(原图),例2(原图),什么是Applet,4,上海财经大学信息管理与工程学院,Applet类层次,自定义applet类:extendsApplet,5,上海财经大学信息管理与工程学院,Applet执行方式,Applet编译生成的字节码文件(.class)存储于WebServer.class文件名嵌在HTML页面中当WebClient的Browser下载并显示含有Applet的HTML时,将自动执行该Applet:显示动画、声音,响应用户事件,6,上海财经大学信息管理与工程学院,Applet的下载过程,WWW服务器存放html,WWW服务器存放.class,WWW浏览器(Browser),解释执行字节码,7,上海财经大学信息管理与工程学院,Http:/someLocation/hello.html,AppletClasses,HelloWorld!,Http:/someLocation/hello.html,Location:,Loading.,1.Browser加载URL,2.Browser加载html文件,3.Browser加载appletclasses,4.在Browser中运行applet,Browser,Applet加载过程,8,上海财经大学信息管理与工程学院,java的两种程序结构,ApplicationpublicclassMyApplicationpublicstaticvoidmain(Stringargs)唯一入口点:main方法,9,上海财经大学信息管理与工程学院,java的两种程序结构(续),Applet可否只要一个入口点呢?由于Browser有不同的消息要通知Applet,所以需要多入口。publicclassMyAppletextendsAppletpublicvoidinit()start().stop()destroy()paint(g)update(g),10,上海财经大学信息管理与工程学院,Applet与Applicatioin的区别,运行环境Applet浏览器Application命令行入口方式Applet多消息,多入口Application唯一入口main()执行程序来源Applet实际使用时来自于网络Application本地程序,11,上海财经大学信息管理与工程学院,区别(续),安全性方面Applet在安全性方面的限制Applet不能访问本地文件(网络的客户端),包括读、写文件Applet不能调用本地的应用程序和动态连接库Applet不能做网络连接,除非它连接的对象是下列两个站点之一:下载包含本Applet的HTML站点下载本Applet字节码文件的站点,12,上海财经大学信息管理与工程学院,Applet的生命周期,构造方法,vs.,init()方法,构造函数的执行时间早于init(),13,上海财经大学信息管理与工程学院,Applet的生命周期,加载applet创建applet的实例applet实例的初始化(包括成员变量、组件等的初始化)applet开始运行离开和返回Applet所在的页面Applet停止/开始运行重新加载Applet退出浏览器停止运行并释放所有资源。,14,上海财经大学信息管理与工程学院,init():初始化;Applet被浏览器载入时运行applet加载(重加载)时,首先调用本方法,执行基本初始化,如设置Layout,数据初始化等。,destroy():释放对象资源,关浏览器时执行关闭浏览器时彻底终止applet,为卸载applet做最终清理。,stop():暂停Applet,每次离开当前页时执行停止applet的运行。当离开该applet所在的页面或关闭浏览器时调用。applet可调用该方法停止线程。,start():启动Applet;每次回到当前页时运行开始Applet的执行,使applet成为激活状态。在加载applet或每次显示该applet时都要调用。,Applet生命周期各方法,15,上海财经大学信息管理与工程学院,生命周期各方法,生命周期称为Applet的主线程一般由Browser或appletviewer自动调用例9-2,16,上海财经大学信息管理与工程学院,HTML标记方法,HTML标记方法用于获取HTML中关于Applet的信息URLgetDocumentBase():返回包含Applet的HTML文件的URL;URLgetCodeBase():返回Applet主类的URL;StringgetParameter(Stringname):返回HTML文件标记中指定参数的值;如果没有说明,则返回null;,17,上海财经大学信息管理与工程学院,Applet的GUI编程,可以把Applet作为一个AWT容器来对其进行编程。可放置简单构件(Label、Button等)以及其他非顶层容器(Panel);可绘制用户自定义成分(绘制图形、文字、显示图象)事件处理,18,上海财经大学信息管理与工程学院,编写Applet的步骤,引入所需的java包;将要显示的applet定义成java.applet.Applet类的子类;实现Applet的某些方法;将applet嵌入html文件.,19,上海财经大学信息管理与工程学院,编写Applet,例HelloWorldapplet:importjava.awt.*;importjava.applet.*;publicclassHelloWorldextendsAppletpublicvoidpaint(Graphicsg)g.drawString(“HelloWorld!”,25,25);,2.定义成java.applet.Applet类的子类;,1.引入所需的javaAPI包;,3.实现Applet的某些方法;,20,上海财经大学信息管理与工程学院,将Applet嵌入html文件,例9-1ASimpleProgram,4.将applet嵌入html文件,21,上海财经大学信息管理与工程学院,Applet是Component子类,属于图形界面。当Applet每次刷新其显示时,浏览器都调用paint()方法。Paint(Graphicsg)把java.awt.Graphics类的实例作为参数。该实例包含了Applet所在Panel图形的环境信息。,Applet的显示,22,上海财经大学信息管理与工程学院,Applet显示的相关方法,paint(Graphicsg)向Applet中画图、画图象,显示字符串。当Applet初次显示或更新时,都将调用该方法。repaint()调用该方法将通知系统改变显示,系统将调用update(Graphicsg)清除当前的显示并调用paint()方法。,23,上海财经大学信息管理与工程学院,Applet的绘图周期,绘图周期称为AWT线程Applet一开始运行,就自动启动了AWT线程,负责Applet的显示更新,24,上海财经大学信息管理与工程学院,Applet显示的三个方法,paint()方法publicvoidpaint(Graphicsg)g是由浏览器生成的实例对象,该对象相当于Applet的画笔,调用paint方法时,由浏览器传递;update()方法publicvoidupdate(Graphicsg)首先清除背景,再调用paint方法完成绘制;repaint()方法调用update方法实现对Applet的更新。,25,上海财经大学信息管理与工程学院,图形显示:Graphics类,位于java.awt包中,是Applet绘制的关键类Graphics方法图形绘制:画线drawLine();画矩形drawRect();画立体矩形draw3Drect();文本显示:drawString(),drawBytes();paint(Graphicsg):g由浏览器传递来,26,上海财经大学信息管理与工程学院,Applet的显示示例例9-2运行,importjava.applet.Applet;importjava.awt.Graphics;publicclassSimpleextendsAppletStringBufferbuffer;publicvoidinit()buffer=newStringBuffer();addItem(initializing.);publicvoidstart()addItem(starting.);publicvoidstop()addItem(stopping.);,27,上海财经大学信息管理与工程学院,publicvoiddestroy()addItem(preparingforunloading.);voidaddItem(StringnewWord)System.out.println(newWord);buffer.append(newWord);repaint();publicvoidpaint(Graphicsg)/DrawaRectanglearoundtheappletsdisplayarea.g.drawRect(0,0,size().width-1,size().height-1);/Drawthecurrentstringinsidetherectangle.g.drawString(buffer.toString(),5,15);,28,上海财经大学信息管理与工程学院,在HTML文件中使用标志。APPLET标志的格式,在HTML页中包含Applet,29,上海财经大学信息管理与工程学院,标志包括3个部分:Applet属性参数在非java兼容浏览器中显示的内容,标志,30,上海财经大学信息管理与工程学院,Applet主类的文件名,Applet主类的路径名,Applet在Web页上的对齐方式,围绕Applet的水平和垂直空白空间,属性,31,上海财经大学信息管理与工程学院,作用:允许用户对Applet进行一定程度的定制,提高了Applet灵活性。比较:javaApplication参数的传递:命令行,传递给Main()方法。Applet通过在HTML文件中采用标志定义和传递参数。在Applet的init()方法中使用getParameter()方法获取参数。,applet参数,32,上海财经大学信息管理与工程学院,Applet参数的设计和使用,参数设计和实现的步骤1.确定Applet参数允许用户对Applet程序的哪些方面进行配置?(如所要显示的图形文件,图形刷新速率)参数命名:不分大小写参数值的类型:作为字符串传递到Applet中,由Applet进行区分和处理;应设置缺省值。,33,上海财经大学信息管理与工程学院,Applet参数,2.在Applet中编写参数处理代码Applet中参数的读取:在init()方法中使用getParameter()方法。publicStringgetParameter(Stringpara_name),须与html中的参数名相同,返回值为String型,需在程序中转换为其它类型,如转换成整型:Interger.parseInt(pvalue_string),34,上海财经大学信息管理与工程学院,Applet参数,3.在Applet中定义参数信息目的:使用户了解可供其配置的参数信息Applet中参数信息的定义:使用getparameterInfo()方法。publicStringgetparameterInfo(),35,上海财经大学信息管理与工程学院,在HTML文件中的Applet描述:Applet类:importjava.awt.*;importjava.applet.*;.URL;publicclassDrawAnyextendsAppletImageim;publicvoidinit()URLurl=getDocumentBase();/获取HTML文件的URLStringimageName=getParameter(“image”);/获取从html传来的image参数im=getImage(url,imageName);publicvoidpaint(Graphicsg)g.drawImage(im,0,0,this);,示例例9-3运行,36,上海财经大学信息管理与工程学院,Applet中的图形用户界面,Applet类是Panel类的子类,是容器常用容器方法Add():添加组件Remove():删除组件setLayout():设置布局管理器常用文本显示组件:AWT文本组件,Graphics类作为补充弹出式窗口:突破的width和height属性的大小限制例9-5运行,37,上海财经大学信息管理与工程学院,Applet事件处理,采用事件监听器方式,与Application相同。例9-6若采用Adapter方法,该如何处理?例9-6改,38,上海财经大学信息管理与工程学院,Applet的多媒体支持:图像,java.applet.image包中,定义了许多支持图像的类及其方法。目前java所支持的格式:GIF,JPEG,PNG(JDK1.3以上)加载图像的方法:Applet类的getImage()publicImagegetImage(URLurl);如url=“11/dir/ABC.jpg”publicImagegetImage(URLurl,StringName);如url=“11/dir/”,Name“ABC.jpg”,39,上海财经大学信息管理与工程学院,Applet的多媒体支持:图像,URL类型参数的使用getCodeBase():当applet与图像文件在一个目录下时;getDocument():当applet嵌入的HTML文件与图像文件在同一个目录下时;,40,上海财经大学信息管理与工程学院,Applet的多媒体支持:图像,显示图像的方法:Graphics类的drawImage()drawImage(Imageimg,intx,inty,intwidth,intheight,Colorbgcolor,ImageObserverobserver)上述image()方法参数含义如下:Imageimg要绘制的图像对象。intx,inty图像的左上角坐标(像素)。intwidth,intheight图像的宽度和高度(像素)。Colorbgcolor图像的背景色。当图像有透明色时使用。ImageObserverobserver实现了ImageObserver接口类的对象,用于对图像加载进行跟踪和控制。,41,上海财经大学信息管理与工程学院,Applet的多媒体支持:动画,动画:图像串连起来进行循环放映;帧速率(30帧/PS):每秒钟所连续显示的图像数。实现动画:创建动画循环用户的Applet中,应具有专门显示动画的线程,用run()实现动画循环,这样可灵活控制动画的启、停。(如在Applet的start()方法中启动动画线程,stop()方法中撤消动画线程。)例9-7,42,上海财经大学信息管理与工程学院,Applet的多媒体支持:声音,java.applet中的Applet类和AudioClip接口java2支持的音频格式:au,aif,midi,wav,rfm等Applet中播放声音的方法加载声音文件,返回实现AudioClip接口的类对象publicAudioClipgetAudioClip(URLurl);AudioClip接口的方法:play();loop();stop();直接播放指定URL中的文件publicvoidplay(URLurl);例9-8,43,上海财经大学信息管理与工程学院,同页Applet间的通信,同一浏览器窗口的同一html页面的Applet之间可互相通信(互相调用对方的方法);interfaceAppletContext:保存当前Applet运行环境的信息AppletgetApplet(Stringname)/按名字查找某个appletEnumerationgetApplets()/获取同一页面中的全部applet对象例:9-10,44,上海财经大学信息管理与工程学院,Applet与浏览器的通信,URLgetCodeBase():返回.class所在目录的URLURLgetDocumentBase():返回HTML的URLStringgetParameter(String):返回HTML中设定的参数值在浏览器中显示状态showStatus(Stringstr);请求浏览器访问某个html页面publicvoidshowDocument(URL,url)例9-11,45,上海财经大学信息管理与工程学院,安全机制,JDK1.0提供的沙箱模型application被完全信任applet不能运行本地可执行程序和动态链接库applet不能读写本地文件除下载它的服务器以外,applet不能与任何一台主机通信缺点:限制了所有非恶意applet对本地资源的访问JDK1.1中的改进信任签名技术:使某些applet经过授权,成为可信代码,可访问本地系统资源缺点:控制粒度太粗。一旦信任,则可访问全部资源,46,上海财经大学信息管理与工程学院,安全机制,java2:对每个Applet和Application指定安全策略,对其访问权限进行定义。粒度更细。当Applet和Application运行时,java运行平台将载入策略文件进行验证。若未通过验证,则放入沙箱中。,47,上海财经大学信息管理与工程学院,安全策略文件,安全策略文件的内容,grantSignedBy“signer_name”,CodeBase“URL”permission_1permission_2;,48,上海财经大学信息管理与工程学院,安全机制,安全策略文件内容工具:policytool,SignedBy“Wang”CodeBase“file:/E:/myApplet.class”,grantcodeBasefile:/E:/myApplet.classpermissionjava.security.AllPermission;,49,上海财经大学信息管理与工程学院,安全策略的定义与实施,1.建立策略文件,授予某Applet所需权限可使用policytool工具Permission语法格式:PermissionclassNametargetNameactionList保存.policy文件,50,上海财经大学信息管理与工程学院,安全策略的定义与实施,2.用户安全策略文件的使用命令行:Djava.security.policyjresecurityjava.security,javaDjava.security.policy=test.policyTest,appletviewerJDjava.security.policy=test.policyTest.html,policy.url.1=file:$java.home/lib/security/java.policypolicy.url.2=file:$user.home/.java.policypolicy.url.3=file:/E:/MyDocument/java/test.policy,51,上海财经大学信息管理与工程学院,安全机制,数字签名产生公钥和私钥制作证书制作档案文件给档案文件签名,52,上海财经大学信息管理与工程学院,安全机制,产生公钥和私钥私钥:给文件签名公钥:身份验证keytoolgenkeyaliassignerkeypassabc123keystoremystore制作证书keytoolexportkeystoremystorealiassignerfilesigner.cer,53,上海财经大学信息管理与工程学院,安全机制,制作档案文件jarcvftest.jartest.class给档案文件签名jarsignerkeystoremystoresignedjarstest.jartest.jarsigner,54,上海财经大学信息管理与工程学院,安全机制,接收判别证书真伪keytoolimportaliaslisifilesigner.cerkeystorelsstore验证档案jarsignerverifyverbosekeystorelsstorestest.jar,55,上海财经大学信息管理与工程学院,jar压缩程序,-ccreatenewarchive-tlisttableofcontentsforarchive-xextractnamed(orall)filesfromarchive-uupdateexistingarchive,Usage:jarctxuvfm0Mjar-filemanifest-file-Cdirfiles.,56,上海财经大学信息管理与工程学院,jar压缩程序,-vgenerateverboseoutputonstandardoutput-fspecifyarchivefilename-mincludemanifestinformationfromspecifiedmanifestfile-0storeonly;usenoZIPcompression-MDonotcreateamanifestfileforth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论