JAVA语言项目5Applet程序设计_第1页
JAVA语言项目5Applet程序设计_第2页
JAVA语言项目5Applet程序设计_第3页
JAVA语言项目5Applet程序设计_第4页
JAVA语言项目5Applet程序设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、项目5 Applet程序设计,5.1 项目概述 5.2 项目目的 5.3 项目支撑知识 5.4 项目实施 5.5 项目总结 5.6 扩展演练,本项目为Java Applet程序。,返回,5.1 项目概述,5.2 项目目的,掌握Applet的运行机制。 理解Applet的生命周期。 了解Applet声音和图像的使用。,返回,5.3 项目支撑知识,Applet的生命周期中有4个状态:初始态、运行态、停止态和消亡态。当Applet程序所在的浏览器图标化或者是转入其他页面时,该Applet程序马上执行stop()方法,Applet程序进入停止态;在停止态中,如果浏览器又重新装载该Applet程序所在的

2、页面,或者是浏览器从图标中复原,则Applet程序马上调用start()方法,进入运行态;当然,在停止态时,如果浏览器关闭,则Applet程序调用destroy()方法,进入消亡态。,下一页,返回,5.3 项目支撑知识,5.3.1项目开发背景知识1 Applet类的层次关系 Applet类位于Java.applet包中,是一个图形类。Applet类在Java类的层次关系如图5-1所示。 Panel是Applet类的父类,因此Applet类继承了Panel的特性,Panel类是用于进行图形用户界面的一个类,本书将在后续帝节中介绍。与Panel不同的是,Applet类是一个可以运行的类,创建App

3、let子类就可以运行Applet应用程序。,上一页,下一页,返回,5.3 项目支撑知识,Applet类提供了applet及其运行环境之间的标准接口。Applet类是Panel的子类,则Applet也是一种容器,可以当做AWT布局的开始。Applet默认的布局为流(flow)布局管理器。Component, Container和Panel类的方法被Applet类继承了下来。 JApplet类是Java.applet.Applet的子类,它添加了对Swing组件架构的支持。JApplet包含一个JRootPane作为其唯一子类。contentPane应该是JApplet任何子类的父类。具体使用方法

4、可以参考Swing组件的API使用说明。,上一页,下一页,返回,5.3 项目支撑知识,5.3.2项目开发背景知识2 Applet的创建 以下程序段创建了一个名为MyJavaApplet的小程序,其中MyJavaApplet类是Applet的子类。,上一页,下一页,返回,5.3 项目支撑知识,说明: (1)主类必须是Applet的子类,是public类型的,应以与类名一致的文件名存盘。 (2)Applet是Panel的子类,因此可以在Applet上添加组件,设计图形用户界面,使得用户可以在Web页面中进行交互操作。 (3)Applet是由浏览器调用的,不需要main方法。 5.3.3项目开发背景

5、知识3 Applet的生命周期,上一页,下一页,返回,5.3 项目支撑知识,Applet的生命周期有4个主要方法:init(),start(),stop()和destroy()。 1.初始化:init() public void init() 当Applet所在网页第一次被加载或重新加载时调用此方法,并且仅执行一次,实现获取Applet的运行参数、加载图像或图片、初始化全程变量等。,上一页,下一页,返回,5.3 项目支撑知识,2.启动:start() public void slart() 当Applet所在网页第一次被加载或重新加载时,执行完init()方法后,start()就自动开始执行,

6、使得Applet成为“活动”的。或者当浏览器在链接到另一个URL后又重新返回其所在的网页时,start()就会再执行一遍。与init()方法不同的是start()方法在小应用程序的整个生命周期中可以被调用多次,用于启动小应用程序的执行。此方法是Applet应用程序的主要部分。,上一页,下一页,返回,5.3 项目支撑知识,3.停止:stop() public void slop() 该方法在生命周期中可以被多次调用。每当用户离开Applet所在网页,使该网页变成不活动状态或最小化浏览器时执行。如果浏览器又回到此页,则start()又被调用来启动Java Applet Applet通常用该方法使声

7、音和动画这些耗用系统资源的工作停止,避免影响系统的运行速度。如果用户在小程序中设计了播放音乐的功能,而没有在stop()方法中给出停止播放它的有关语句,那么当离开此页去浏览其他页时,音乐将不能停止。如果没有定义stop()方法,当用户离开Java Applet所在的页面时,Java Applet将继续使用系统的资源。若定义了 stop()方法,则可以挂起Applet的执行。,上一页,下一页,返回,5.3 项目支撑知识,4.删除: destory() public void destroy() 当包含Applet的页面被关闭时,destroy方法由自动浏览器或appletviewer调用,通知此

8、Applet它正在被回收,它应该销毁分配给它的任何资源。可以使用destroy()方法清除Applet占用的资源。在实际应用中,这个方法很少被重载,因为一旦Applet运行结束,Java系统会自动清除它所占用的变量空间等资源。该方法是父类Applet中的方法,不必重写这个方法,直接继承即可。,上一页,下一页,返回,5.3 项目支撑知识,总之,当start()方法运行时,Applet在浏览器上成为可视化的,stop()方法运行时,Applet在浏览器上成为不可视化的,也就是说start()和stop()两个方法构成了Applet生命周期中的可视化周期,占据Web浏览器页面。换句话说:从调用ini

9、t()方法,Applet开始运行,到调用destroy()方法,Applet停止运行,回收资源,这个流程称为Applet的生命周期。如图5-2所示。,上一页,下一页,返回,5.3 项目支撑知识,5.3.4项目开发背景知识4 Applet类的显示方法 Apple本质上是图形方式的,System.out.println()是没有用的,可以创建paint()方法绘图。只要刷新Applet的显示,paint()方法就会被调用。 绘图:paint()方法 public void paint(Graphics g),上一页,下一页,返回,5.3 项目支撑知识,Applet类的此方法用于绘制容器。paint

10、()方法带有一个参数,它是Java.awt Graphics类的一个实例,用于在Applet中绘图或写入文本。Graphic是类是所有图形上下文的抽象基类,允许应用程序可以在组件以及闭屏图像上进行绘制。 public abstract void drawString(String str, int x,int y) Graphics类的此方法使用此图形上下文的当前字体和颜色绘制由指定String给定的文本。最左侧字符的基线位于此图形上下文坐标系统的(x,y)位置处。,上一页,下一页,返回,5.3 项目支撑知识,Str:要绘制的String x:x坐标 y:y坐标 2.重绘:repaint()方

11、法 public void repaint() Applet类的此方法用于重绘组件。当用户使用repaint()方法时,将导致下列事情发生:程序首先清除repaint()方法以前所画的内容,然后再调用repaint()方法。 改变显示可调用repaint()。repaint()将会产生一个调用update()的AWT线程。,上一页,下一页,返回,5.3 项目支撑知识,3.更新:update ( Graphics g)方法 public void update(Graphics g) Applet类的此方法用于更新容器。update方法通常清除当前的显示并调用paint()。 paint(),u

12、pdate()和repaint()方法间的内在关系如图5-3所示。在Applet中,Applet的显示更新由一个专门的AWT线程控制。,上一页,下一页,返回,5.3 项目支撑知识,该线程主要负责两种情况的处理:第一种情况是在Applet的初次显示或浏览器窗口大小发生变化,而引起Applet的显示发生变化时,将调paint()方法进行Applet绘制;第二种情况是Applet代码需要更新内容,从程序中调用二paint()方法,则AWT线程在接收到该方法的调用后,将调用Applet的update()方法,而update()方法再调用构件的paint()方法实现显示的更新。,上一页,下一页,返回,5

13、.3 项目支撑知识,5.3.5项目开发背景知识5 Applet标记 运行Java Applet时必须将其字节码嵌人到HTML文件中才能够运行。和这一对标记标志着HTML文件的开始和结束。若在HTML文件中嵌入Java Applet,需要通过使用一组特殊标记和 。 嵌入Java Applet标记的完整语法:,上一页,下一页,返回,5.3 项目支撑知识,上一页,下一页,返回,5.3 项目支撑知识,语法说明: archive=archiveList:可选属性,描述了一个或多个含有将被“预装”的类和其他资源的archives。类的装载由带有给定codehbase的AppletClassLoader的一

14、个实例来完成。ArchiveList中的archives以逗号(,)分隔。? code=appletFile.class:必选属性,它给定了含有已编译好的Applet子类的文件名。也可用package.appletFile.class的格式来表示。这个文件与要装入的HTML文件的基URL有关,它不能含有路径名。,上一页,下一页,返回,5.3 项目支撑知识,width=pixels height=pixels:必选属性,给出Applet显示区域的初始宽度和高度(以象素为单位),不包括Applet所产生的任何窗口或对话枢。 codebase=codebaseURL:可选属性,指定了Applet的基

15、URL包含有Applet代码的目录。如果这一属性未指定,则采用文档的URL。 alt=alternateText:可选属性,指定了当浏览器能读取Applet标记但不能执行Java Applet时要显示的文本。 name=AppletInstanceNatme:可选属性,为Applet实例指定有关名称,从而使得在同一页面上的Applet可找到彼此(以及互相通信)。,上一页,下一页,返回,5.3 项目支撑知识,align=alignment:可选属性,指定了Applet的对齐方式。它的可取值与基本的HTML中IMG标记的相应属性相同,为left, right, top, texttop, midd

16、le,absmiddle,baseline,bottom和absbottotn 。 vspace=pixels hspace=pixels:可选属性,指定了在Applet上下(Vspace)及左右(hspace)的象素数日。其用法与IMG标记的vspace和hspace属性相同。 :可选属性,提供了一种可带有由“外部”指定的数值的Applet,它对一个Java应用程序的作用与命令行参数相同。,上一页,下一页,返回,5.3 项目支撑知识,Applet用getParameter()方法来存取它们的属性。 alternateHTML:可选属性,不支持Java程序执行的浏览器将显示被包括在和标记之间的

17、任何常规的HTML;而可支持Java技术的浏览器则忽略介于这两个标记之间的HTML代码。,上一页,返回,5.4 项目实施,【例5-1】完成Applet的程序和HTML文件,使程序输出结果如图5-4所示。 Applet程序如下:,下一页,返回,5.4 项目实施,HTML代码如下: 评析: 本项目考查的是Applet的使用。 在HTML文档中,可通过Applet标签指定Java小程序。在Applet标签中,code用来指定Java小程序文件;cadebase用来指定Java小程序存放的路径。,上一页,下一页,返回,5.4 项目实施,在HTML文档中,可通过param标签向Java小程序传递参数。在

18、param标签中,name属性用来指定Java小程序的参数名,value用来指定参数值。 另外本项目还考查了Graphics类的应用。 Graphics类提供了三个在部件和图像中绘制文本的方法。本题所涉及的是drawString()方法。 void drawString(String str, int x,int y) drawString()方法用一个包含将要被显示文本的字符串实例以及两个指定文本开始坐标的整型值作为参数。,上一页,下一页,返回,5.4 项目实施,上面列的代码显示了在paint()方法内使用draw String()方法。这个范例代码在含paint()方法的部件中显示字符“欢

19、迎你参加Java考试!”,x和y坐标指明文本框左下角位置。,上一页,下一页,返回,5.4 项目实施,【例5-2】在Java 2.html的Applet标记中,定义了参数Strings并给出了它对应的字符串值,Applet Java 2中将显示这个字符串。 Applet程序如下:,上一页,下一页,返回,5.4 项目实施,HTML程序如下:,上一页,下一页,返回,5.4 项目实施,评析: 本项目是Applet的使用。 在HTML文档中,可通过Applet标签指定Java小程序。在Applet标签中,code用来指定Java小程序文件;cadebase用来指定Java小程序存放的路径。,上一页,下一

20、页,返回,5.4 项目实施,在HTML文档中,可通过param标签向Java小程序传递参数。在param标签中,name属性用来指定Java小程序的参数名,value用来指定参数值。 【例5-3】读取传递给Applet的参数Image,并将所传递的参数的图片显示出来;在状态栏中显示出鼠标位置。,上一页,下一页,返回,5.4 项目实施,上一页,下一页,返回,5.4 项目实施,、 其正确结果输出如图5-5所示。,上一页,下一页,返回,5.4 项目实施,评析: 本项目是Applet中参数的传递及图片的显示。 在HTML文档中,可通过param标签向Java小程序传递参数。在param标签中,name

21、属性用来指定Java小程序的参数名,value用来指定参数值。本题通过getParameter获得Appler中的参数Image的值。 本项目还涉及到了事件适配器,它提供了一种简单的实现监听器的手段,可以缩短程序代码,因为它是通过重写需要的方法,无关的方法不用实现。,上一页,下一页,返回,5.4 项目实施,this.addMouseMotionListener ( new MouseMotionAdapter()采用了鼠标运动适配器MouseMotionAdapter,重写了mouseMoved()方法,在方法中通过showStatus(strTemp) ;显示出了鼠标的位置。 另外本项目还考查了Graphics类的应用。 Graphic是类提供了画线和圆这样的简单几何类型的方法,另外也提供了显示文本的方法。为了绘制,程序要求有一个有效的图形环境(由graphics类的一个实例表示)。因为(graphics类是一个抽象的基类,它不能直接被实例化。,上一页,下一页,返回,5.4 项目实施,一个具体的实例被一个部件创建,并且然后作为一个参数传递给程序到一个部件的update()和paint()方法。这两个方法作为AWT内周期绘制的一部分被调用。 Graphics类提供了三个在部件和图像中绘制文本的方法。本项目所涉及的是d

温馨提示

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

评论

0/150

提交评论