




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第13章章 Java Applet 本章导读nJava Applet的运行原理n在网页向Java Applet传值n在Java Applet中播放声音n在Java Applet中使用组件n在Java Applet中绘制图形图像n在Java Applet中播放幻灯片nJava Applet 网络聊天室113.1 Java Applet的运行原理 _ 1 Java Applet概述 1Java Applet概述概述 一个Java Applet也是由若干个类组成的,一个Java Applet不再需要main方法,但必须有且只有一个类扩展了Applet类,即它是Applet类的子类,我们把这个类称为
2、这个Java Applet的主类。 Java Applet的主类必须是public的。Applet类是java.applet包提供的类,Applet类是Container类的一个间接子类,因此Java Applet的实例是一个容器。 Java Applet属于Java嵌入式开发的一种,嵌入式程序的主类的实例化由嵌入该程序的环境平台中JVM负责。这样一来,我们必须向这样的平台提供相应的配置文件,嵌入该程序的环境平台使用配置文件通知平台中的JVM建立主类的对象,并产生相应的一些行为。 Applet类有5个常用的方法,它们是init (),start(),stop(),destroy()和和pain
3、t(Graphics g)。213.1 Java Applet的运行原理 _ 2 运行原理 2 运行原理运行原理 例例13-1说明Java Applet运行原理,效果如图13.1所示。 3 (1) 网页的编写 编写一个超文本文件,告诉浏览器来运行这个Java Applet。 假设Applet主类的名字是Example13_1,下面是一个简单的html文件“like.html”。like.html文件告诉浏览器运行主类是Example13_1的Java Applet。 网页的最终目的是让其他客户通过网络来访问,下载到客户端执行。可以用Web发布管理器,比如,IIS或Tomcat,将含有Java
4、Applet网页所在的目录设成Web服务目录。例如,我们将like.html所在的文件夹D:ch13设为Web服务目录,虚拟目录名称是hello,那么其他用户就可以在其浏览器的地址栏中键入该服务器的IP地址、虚 拟 目 录 名 称 访 问 含 有 J a v a A p p l e t 的 网 页 , 如00/hello/like.html00/hello/like.html。 Java Applet的字节码文件会下载到客户端,由客户端的浏览器负责运行。超文本文件like.html可以被看成是运行环境执行Java Applet
5、所要求的配置文件。 4 (2) Java Applet的生命周期 一个Java Applet的执行过程称为这个Java Applet的生命周期。一个Java Applet的生命周期会涉及如下方法的调用执行init()init(),start()start(),stop()stop(),destroy()destroy()和和paint(Graphics g)paint(Graphics g)。 当浏览器执行like.html,发现有applet标记时,浏览器内置的JVM将创建主类Example13_1的一个对象,它的大小由超文本文件like.html中的width和height来确定。由于Ap
6、plet类也是Container的间接子类,因此主类的实例也是一个容器,容器有相应的坐标系统,单位是像素,原点是容器的左上角。该容器的默认布局是FlowLayout布局,被自动添加到浏览器的桌面上。浏览器内置的JVM创建了主类Boy对象后,立刻通知这个对象调用init()方法完成必要的初始化工作。该对象接着自动调用start()方法。当浏览器离开Java Applet所在的页面转到其他页面时,主类创建的对象将调用stop()方法。当浏览器结束浏览时,主类创建的对象自动执行destroy()方法,结束Java Applet 的生命。 paint(Graphics g)方法可以使一个Java Ap
7、plet在容器上显示某些信息,如文字、色彩、背景或图像等。浏览器的Java运行环境产生一个Graphics类的实例,并传递给方法paint中的参数g。513.1 Java Applet的运行原理 _ 3关于repaint()方法和update(Graphics g) 3关于关于repaint()方法方法update(Graphics g) repaint()方法和update(Graphics g)是Component类中的一个方法。当调用repaint()方法时,程序首先清除paint()方法以前所画的内容,然后再调用paint()方法。 实际上,当我们调用repaint()方法时,程序自动
8、去调用update(Graphics g)方法,浏览器的Java运行环境产生一个Graphics类的实例,传递给方法update(Graphics g)中的参数g。这个方法的功能是清除paint()方法以前所画的内容,然后再调用paint()方法。因此,我们可以在子类中重写update()方法(即隐藏父类的方法),根据需要来清除哪些部分或保留哪些部分。 例13-2在paint()方法中使用了repaint()方法,因此每当Java Applet调用paint()方法时,就会调用update()方法。程序重写了update()方法,清除paint()方法所绘制的部分内容,并紧接着再调用paint
9、()方法。613.2 Java Applet中播放声音 用Java可以编写播放AU、AIFF、WAV、MIDI、RM格式的音频。AU格式是Java早期惟一支持的音频格式。要在Java Applet中播放声音,可以使用Applet类的一个静态的方法(类方法):newAudioClip(URL url,String name)newAudioClip(URL url,String name)或Applet类的实例方法getAudioClip(Url url,String name)getAudioClip(Url url,String name)根据参数url提供的地址和该处的声音文件name,可
10、以获得一个用于播放的音频对象(AudioClip类型对象)。这个音频对象可以使用下列方法来处理声音文件: play() 播放声音文件name。 loop() 循环播放name。 stop() 停止播放name。 例例13-3 播放声音 。713.3 在网页向Java Applet传值 我们可以在超文本中使用若干个标志把值传递到Java Applet中,这样就实现了动态地向程序传递信息,不必重新编译程序,便于程序的维护和使用。 例例13-4 在网页向Java Applet传值 。813.4 在Java Applet中使用组件 Applet类是容器的间接子类,因此我们可以在这个容器中添加组件,处理
11、组件事件,完成一些工作。如果没有更新浏览器内置的JVM,Java Applet中只能使用JDK 1.1版本公布的java.awt包中的组件,如Button,TextField,TextArea等。 例例13-5中中,我们把Java Applet的布局设置为BorderLayout布局,效果如图13.2所示。Java Applet的中心和北面又分别嵌套了面板(Panel创建的对象)centerPanel和northPanel。centerPanel面板的布局是CardLayout布局、northPanel的布局是默认的FlowLayout布局。在northPanel中添加了两个按钮,center
12、Panel面板中又嵌套了两个不同的容器,作为centerPanel 中的“卡片”,单击相应的按钮时,centerPanel面板将显示相应的“卡片”,两张卡片分别负责计算圆和三角形的面积。 例例13-6(效果如图13.3所示)在JApplet的内容面板的中心添加了JTree组件,该组件用来显示日历。网页将年份传值给Japplet,在内容面板的北面添加了两个按钮,两个按钮分别负责向前和向后翻动月份;在内容面板的南面添加了1个标签,用来显示月份和年份。该例子中用到了Calendar类的许多属性和功能。9例13-5,13-6 运行效果 图13.2,13.31013.5 在Java Applet中绘制图
13、形 _1 1绘制文本绘制文本drawstring() 方法可以在屏幕上显示串对象。drawString(String s,int x,int y)方法从参数x、y指定的坐标位置处,从左向右绘制参数s指定的字符串。drawChars(char data,int offset, int length, int x, int y)方法绘制data数组中的部分字符,length指定数组中要连续绘制的字符的个数,offset是首字符在数组中的位置。2绘制直线绘制直线drawLine(int x1,int y1,int x2,int y2)方法绘制从起点(x1,y1)到终点(x2,y2)的直线段。3绘制矩
14、形绘制矩形drawRect (int x,int y,int w,int h)方法绘制矩形,fillRect (int x,int y,int w,int h)方法填充矩形。矩形的左上角的坐标由参数x和y指定,矩形的宽和高由参数w和h指定。4绘制圆角矩形绘制圆角矩形drawRoundRect(int x,int y,int w,int h,int arcW,int arcH)方法绘制圆角矩形,fillRoundRect(int x,int y,int w,int h,int arcW,int arcH)方法填充圆角矩形。参数arcW和arcH指定圆角的尺寸,见图图13.4中的中的4个黑角部分。
15、11图13.41213.5 在Java Applet中绘制图形_2 6绘制圆弧绘制圆弧 圆弧就是某个椭圆的一部分。drawArc(int x,int y,int width,int height,int starAngle, int arcAngle)方法绘制圆弧。fillArc(int x,int y,int width,int height,int starAngle,int arcAngle)方法填充圆弧。 x、y、width、heigth指定椭圆的位置和大小,参数starAngle和 arcAngle的单位都是“度”。而起始角度的0是3点钟的方位。参数starAngle和arcAngl
16、e表示从starAngle的角度开始逆时针或顺时针方向画arcAngle度的弧,当arcAngle是正值时为逆时针,否则为顺时针。starAngle的值可以是负值,如-90是6点钟的方位。7绘制多边形绘制多边形drawPolygon(int xPoints, int yPoints, int nPoints)方法绘制多边形。fillPolygon(int xPoints, int yPoints, int nPoints)方法填充多边形。 参数数组xPoint和yPoint组成多边形的顶点坐标,nPoints是顶点的数目。 注:注:Java自动闭合多边形,程序总是把最后的顶点和第一个顶点连接起
17、来。 例例13-7绘制了一些基本图形,效果如图如图13.5所所示。13例例13-7机制机制运行效果图13.51413.6 在Java Applet中绘制图像 图像是矩形内的一组像素。Java支持主要两种图像格式GIF(Graphics Interchang Format)和JPEG(Join Phtographic Expert Group)。public Image getImage(URL url,String name) Applet类提供的方法,返回可以被显示在屏幕上的Image对象的引用。 public URL getCodeBase()从Applet继承的方。该方法返回一个URL对
18、象。 public URL getDocumentBase()该方法返回一个URL对象, public boolean drawImage(Image img,int x,int y,ImageObserver observer) Graphics类提供。如public void paint(Graphics g) g.drawImage(img,0,3,this); public boolean drawImage(Image img,int x,int y,int width, int height,ImageObserver observer)。该方法在矩形内绘制加载的图像。如果不想让图像有比例上的变化,在绘制之前可以通过Image类提供的方法获取被加载的图像的宽和高,如img.getHeight(this); img.getWidth(this); 例例13-8绘制了两幅图像,效果如图13.6所示。15例例13-8运行效果图13.61613.7 在Java Applet 播放幻灯片 HTML也可以将图片贴到网页上去,但在HTML中播放幻灯片确实是一件不现实的事情,因为为了看幻灯片必须在多个网页间切换,这是件痛苦的事情。在下面这个J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025军训活动总结及感悟(19篇)
- 四年级体育上册 第27课 多种游戏教学设计 新人教版
- 高中生挫折演讲稿2025(5篇)
- 2025年销售人员个人工作总结(17篇)
- 支教心得体会范文(18篇)
- 农村土地使用互换协议书(4篇)
- 初中生个人自我评价范文(20篇)
- 《第三单元 音乐中的动物 欣赏 大象》(教学设计)-2023-2024学年人教版(2012)音乐一年级下册
- Unit 2 More than fun:Understanding ideas ① 教学设计 2024-2025学年外研版(2024年)英语七年级 上册
- 医院述职报告范文(15篇)
- 工作秘密事项清单范文(6篇)
- 川09J139 居住建筑油烟气集中排放建筑构造(DBJT20-65)
- 浙江工商大学论文答辩汇报通用ppt模板
- 2023年北京市高中力学竞赛决赛试题
- C++反汇编与逆向分析技术揭秘(第2版)
- 2023届湖北省武汉市高三毕业生4月调考英语试卷及参考答案
- 肝移植并发症胆道并发症
- SMT失效模式分析PFMEA
- 【教案】计算机网络技术教案
- LY/T 2638-2016华北落叶松种子园营建技术规程
- GB/T 29602-2013固体饮料
评论
0/150
提交评论