




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/5/8,1,第13章JavaApplet,本章导读JavaApplet的运行原理在网页向JavaApplet传值在JavaApplet中播放声音在JavaApplet中使用组件在JavaApplet中绘制图形图像在JavaApplet中播放幻灯片JavaApplet网络聊天室,2020/5/8,2,13.1JavaApplet的运行原理_1JavaApplet概述,1JavaApplet概述一个JavaApplet也是由若干个类组成的,一个JavaApplet不再需要main方法,但必须有且只有一个类扩展了Applet类,即它是Applet类的子类,我们把这个类称为这个JavaApplet的主类。JavaApplet的主类必须是public的。Applet类是java.applet包提供的类,Applet类是Container类的一个间接子类,因此JavaApplet的实例是一个容器。JavaApplet属于Java嵌入式开发的一种,嵌入式程序的主类的实例化由嵌入该程序的环境平台中JVM负责。这样一来,我们必须向这样的平台提供相应的配置文件,嵌入该程序的环境平台使用配置文件通知平台中的JVM建立主类的对象,并产生相应的一些行为。Applet类有5个常用的方法,它们是init(),start(),stop(),destroy()和paint(Graphicsg)。,2020/5/8,3,13.1JavaApplet的运行原理_2运行原理,2运行原理例13-1说明JavaApplet运行原理,效果如图13.1所示。,2020/5/8,4,(1)网页的编写,编写一个超文本文件,告诉浏览器来运行这个JavaApplet。假设Applet主类的名字是Example13_1,下面是一个简单的html文件“like.html”。like.html文件告诉浏览器运行主类是Example13_1的JavaApplet。网页的最终目的是让其他客户通过网络来访问,下载到客户端执行。可以用Web发布管理器,比如,IIS或Tomcat,将含有JavaApplet网页所在的目录设成Web服务目录。例如,我们将like.html所在的文件夹D:ch13设为Web服务目录,虚拟目录名称是hello,那么其他用户就可以在其浏览器的地址栏中键入该服务器的IP地址、虚拟目录名称访问含有JavaApplet的网页,如00/hello/like.html。JavaApplet的字节码文件会下载到客户端,由客户端的浏览器负责运行。超文本文件like.html可以被看成是运行环境执行JavaApplet所要求的配置文件。,2020/5/8,5,(2)JavaApplet的生命周期,一个JavaApplet的执行过程称为这个JavaApplet的生命周期。一个JavaApplet的生命周期会涉及如下方法的调用执行init(),start(),stop(),destroy()和paint(Graphicsg)。当浏览器执行like.html,发现有applet标记时,浏览器内置的JVM将创建主类Example13_1的一个对象,它的大小由超文本文件like.html中的width和height来确定。由于Applet类也是Container的间接子类,因此主类的实例也是一个容器,容器有相应的坐标系统,单位是像素,原点是容器的左上角。该容器的默认布局是FlowLayout布局,被自动添加到浏览器的桌面上。浏览器内置的JVM创建了主类Boy对象后,立刻通知这个对象调用init()方法完成必要的初始化工作。该对象接着自动调用start()方法。当浏览器离开JavaApplet所在的页面转到其他页面时,主类创建的对象将调用stop()方法。当浏览器结束浏览时,主类创建的对象自动执行destroy()方法,结束JavaApplet的生命。paint(Graphicsg)方法可以使一个JavaApplet在容器上显示某些信息,如文字、色彩、背景或图像等。浏览器的Java运行环境产生一个Graphics类的实例,并传递给方法paint中的参数g。,2020/5/8,6,13.1JavaApplet的运行原理_3关于repaint()方法和update(Graphicsg),3关于repaint()方法update(Graphicsg)repaint()方法和update(Graphicsg)是Component类中的一个方法。当调用repaint()方法时,程序首先清除paint()方法以前所画的内容,然后再调用paint()方法。实际上,当我们调用repaint()方法时,程序自动去调用update(Graphicsg)方法,浏览器的Java运行环境产生一个Graphics类的实例,传递给方法update(Graphicsg)中的参数g。这个方法的功能是清除paint()方法以前所画的内容,然后再调用paint()方法。因此,我们可以在子类中重写update()方法(即隐藏父类的方法),根据需要来清除哪些部分或保留哪些部分。例13-2在paint()方法中使用了repaint()方法,因此每当JavaApplet调用paint()方法时,就会调用update()方法。程序重写了update()方法,清除paint()方法所绘制的部分内容,并紧接着再调用paint()方法。,2020/5/8,7,13.2JavaApplet中播放声音,用Java可以编写播放AU、AIFF、WAV、MIDI、RM格式的音频。AU格式是Java早期惟一支持的音频格式。要在JavaApplet中播放声音,可以使用Applet类的一个静态的方法(类方法):newAudioClip(URLurl,Stringname)或Applet类的实例方法getAudioClip(Urlurl,Stringname)根据参数url提供的地址和该处的声音文件name,可以获得一个用于播放的音频对象(AudioClip类型对象)。这个音频对象可以使用下列方法来处理声音文件:play()播放声音文件name。loop()循环播放name。stop()停止播放name。例13-3播放声音。,2020/5/8,8,13.3在网页向JavaApplet传值,我们可以在超文本中使用若干个标志把值传递到JavaApplet中,这样就实现了动态地向程序传递信息,不必重新编译程序,便于程序的维护和使用。例13-4在网页向JavaApplet传值。,2020/5/8,9,13.4在JavaApplet中使用组件,Applet类是容器的间接子类,因此我们可以在这个容器中添加组件,处理组件事件,完成一些工作。如果没有更新浏览器内置的JVM,JavaApplet中只能使用JDK1.1版本公布的java.awt包中的组件,如Button,TextField,TextArea等。例13-5中,我们把JavaApplet的布局设置为BorderLayout布局,效果如图13.2所示。JavaApplet的中心和北面又分别嵌套了面板(Panel创建的对象)centerPanel和northPanel。centerPanel面板的布局是CardLayout布局、northPanel的布局是默认的FlowLayout布局。在northPanel中添加了两个按钮,centerPanel面板中又嵌套了两个不同的容器,作为centerPanel中的“卡片”,单击相应的按钮时,centerPanel面板将显示相应的“卡片”,两张卡片分别负责计算圆和三角形的面积。例13-6(效果如图13.3所示)在JApplet的内容面板的中心添加了JTree组件,该组件用来显示日历。网页将年份传值给Japplet,在内容面板的北面添加了两个按钮,两个按钮分别负责向前和向后翻动月份;在内容面板的南面添加了1个标签,用来显示月份和年份。该例子中用到了Calendar类的许多属性和功能。,2020/5/8,10,例13-5,13-6运行效果图13.2,13.3,2020/5/8,11,13.5在JavaApplet中绘制图形_1,1绘制文本drawstring()方法可以在屏幕上显示串对象。drawString(Strings,intx,inty)方法从参数x、y指定的坐标位置处,从左向右绘制参数s指定的字符串。drawChars(chardata,intoffset,intlength,intx,inty)方法绘制data数组中的部分字符,length指定数组中要连续绘制的字符的个数,offset是首字符在数组中的位置。2绘制直线drawLine(intx1,inty1,intx2,inty2)方法绘制从起点(x1,y1)到终点(x2,y2)的直线段。3绘制矩形drawRect(intx,inty,intw,inth)方法绘制矩形,fillRect(intx,inty,intw,inth)方法填充矩形。矩形的左上角的坐标由参数x和y指定,矩形的宽和高由参数w和h指定。4绘制圆角矩形drawRoundRect(intx,inty,intw,inth,intarcW,intarcH)方法绘制圆角矩形,fillRoundRect(intx,inty,intw,inth,intarcW,intarcH)方法填充圆角矩形。参数arcW和arcH指定圆角的尺寸,见图13.4中的4个黑角部分。,2020/5/8,12,图13.4,2020/5/8,13,13.5在JavaApplet中绘制图形_2,6绘制圆弧圆弧就是某个椭圆的一部分。drawArc(intx,inty,intwidth,intheight,intstarAngle,intarcAngle)方法绘制圆弧。fillArc(intx,inty,intwidth,intheight,intstarAngle,intarcAngle)方法填充圆弧。x、y、width、heigth指定椭圆的位置和大小,参数starAngle和arcAngle的单位都是“度”。而起始角度的0是3点钟的方位。参数starAngle和arcAngle表示从starAngle的角度开始逆时针或顺时针方向画arcAngle度的弧,当arcAngle是正值时为逆时针,否则为顺时针。starAngle的值可以是负值,如-90是6点钟的方位。7绘制多边形drawPolygon(intxPoints,intyPoints,intnPoints)方法绘制多边形。fillPolygon(intxPoints,intyPoints,intnPoints)方法填充多边形。参数数组xPoint和yPoint组成多边形的顶点坐标,nPoints是顶点的数目。注:Java自动闭合多边形,程序总是把最后的顶点和第一个顶点连接起来。例13-7绘制了一些基本图形,效果如图13.5所示。,2020/5/8,14,例13-7机制运行效果图13.5,2020/5/8,15,13.6在JavaApplet中绘制图像,图像是矩形内的一组像素。Java支持主要两种图像格式GIF(GraphicsInterchangFormat)和JPEG(JoinPhtographicExpertGroup)。publicImagegetImage(URLurl,Stringname)Applet类提供的方法,返回可以被显示在屏幕上的Image对象的引用。publicURLgetCodeBase()从Applet继承的方。该方法返回一个URL对象。publicURLgetDocumentBase()该方法返回一个URL对象,publicbooleandrawImage(Imageimg,intx,inty,ImageObserverobserver)Graphics类提供。如publicvoidpaint(Graphicsg)g.drawImage(img,0,3,this);publicbooleandrawImage(Imageimg,intx,inty,intwidth,intheight,ImageObserverobserver)。该方法在矩形内绘制加载的图像。如果不想让图像有比例上的变化,在绘制之前可以通过Image类提供的方法获取被加载的图像的宽和高,如img.getHeight(this);img.getWidth(this);例13-8绘制了两幅图像,效果如图13.6所示。,2020/5/8,16,例13-8运行效果图13.6,2020/5/8,17,13.7在JavaApplet播放幻灯片,HTML也可以将图片贴到网页上去,但在HTML中播放幻灯片确实是一件不现实的事情,因为为了看幻灯片必须在多个网页间切换,这是件痛苦的事情。在下面这个JavaApplet中,用户只需单击“next”按钮和“previous”按钮就可以前后变换幻灯片。例13-9在HTML中播放幻灯片。,2020/5/8,18,13.8JavaApplet网络聊天室,虽然JavaApplet的字节码驻留在服务器端,但它需要下载到客户端的浏览器来运行,因此JavaApplet是客户端程序。JavaApplet与应用程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业估值方法比较研究-洞察及研究
- 水声测量工5S管理考核试卷及答案
- 乳酸脱氢酶同工酶分离与鉴定-洞察及研究
- 智能化柔性制造系统-洞察及研究
- 古典文学数字化研究-洞察及研究
- 土鳖虫干旱逆境适应策略-洞察及研究
- 5G技术在智慧城市中的融合应用-洞察及研究
- 故障预测算法性能对比-洞察及研究
- 异构传感器数据一致性校准-洞察及研究
- 护理入职考试题目及答案
- 共享服务中心(HRSSC)课件
- 非贸项下对外付汇的政策解读和实操疑难解答课件
- 工程结构检测鉴定与加固第1章工程结构检测鉴定与加固概论课件
- 高中心理健康课程《人际关系-寝室篇》课件
- 数字色彩课件
- 一年级上册科学课件-第一单元 走近科学 复习课件-鄂教版(共23张PPT)
- 煤矿现场急救技术
- 电力系统继电保护课程设计报告-三段式距离保护
- 香港永久性居民在内地所生中国籍子女赴香港定居申请表
- 学习的基本理论
- 天津市新版就业、劳动合同登记名册
评论
0/150
提交评论