版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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个状态个状态:初始态、运行态、停止态初始态、运行态、停止态和消亡态。当和消亡态。当
2、applet程序所在的浏览器图标化或者是转入程序所在的浏览器图标化或者是转入其他页面时,该其他页面时,该applet程序马上执行程序马上执行stop()方法,方法,applet程序进入停止态程序进入停止态;在停止态中,如果浏览器又重新装在停止态中,如果浏览器又重新装载该载该applet程序所在的页面,或者是浏览器从图标中复原,程序所在的页面,或者是浏览器从图标中复原,则则applet程序马上调用程序马上调用start()方法,进入运行态方法,进入运行态;当然,当然,在停止态时,如果浏览器关闭,则在停止态时,如果浏览器关闭,则applet程序调用程序调用destroy()方法,进入消亡态。方法,
3、进入消亡态。下一页返回5.3 项目支撑知识项目支撑知识5.3.1项目开发背景知识项目开发背景知识1 applet类的类的层次关系层次关系applet类位于类位于java.applet包中,是一个图形类。包中,是一个图形类。applet类在类在java类的层次关系如类的层次关系如图图5-1所示。所示。panel是是applet类的父类,因此类的父类,因此applet类继承了类继承了panel的的特性,特性,panel类是用于进行图形用户界面的一个类,本书将类是用于进行图形用户界面的一个类,本书将在后续帝节中介绍。与在后续帝节中介绍。与panel不同的是,不同的是,applet类是一个类是一个可以
4、运行的类,创建可以运行的类,创建applet子类就可以运行子类就可以运行applet应用程应用程序。序。上一页 下一页返回5.3 项目支撑知识项目支撑知识applet类提供了类提供了applet及其运行环境之间的标准接口。及其运行环境之间的标准接口。applet类是类是panel的子类,则的子类,则applet也是一种容器,可以也是一种容器,可以当做当做awt布局的开始。布局的开始。applet默认的布局为流默认的布局为流(flow)布布局管理器。局管理器。component, container和和panel类的方法类的方法被被applet类继承了下来。类继承了下来。japplet类是类是j
5、ava.applet.applet的子类,它添加了对的子类,它添加了对swing组件架构的支持。组件架构的支持。japplet包含一个包含一个jrootpane作作为其唯一子类。为其唯一子类。contentpane应该是应该是japplet任何子类的任何子类的父类。具体使用方法可以参考父类。具体使用方法可以参考swing组件的组件的api使用说明。使用说明。上一页 下一页返回5.3 项目支撑知识项目支撑知识 5.3.2项目开发背景知识项目开发背景知识2 applet的的创建创建以下程序段创建了一个名为以下程序段创建了一个名为myjavaapplet的小程序,其的小程序,其中中myjavaapp
6、let类是类是applet的子类。的子类。上一页 下一页返回5.3 项目支撑知识项目支撑知识 说明说明: (1)主类必须是主类必须是applet的子类,是的子类,是public类型的,应以与类型的,应以与类名一致的文件名存盘。类名一致的文件名存盘。(2)applet是是panel的子类,因此可以在的子类,因此可以在applet上添加组上添加组件,设计图形用户界面,使得用户可以在件,设计图形用户界面,使得用户可以在web页面中进行交页面中进行交互操作。互操作。(3)applet是由浏览器调用的,不需要是由浏览器调用的,不需要main方法。方法。5.3.3项目开发背景知识项目开发背景知识3 app
7、let的生的生命周期命周期上一页 下一页返回5.3 项目支撑知识项目支撑知识applet的生命周期有的生命周期有4个主要方法个主要方法:init(),start(),stop()和和destroy()。1.初始化初始化:init()public void init()当当applet所在网页第一次被加载或重新加载时调用此方法,所在网页第一次被加载或重新加载时调用此方法,并且仅执行一次,实现获取并且仅执行一次,实现获取applet的运行参数、加载图像的运行参数、加载图像或图片、初始化全程变量等。或图片、初始化全程变量等。上一页 下一页返回5.3 项目支撑知识项目支撑知识2.启动启动:start(
8、)public void slart()当当applet所在网页第一次被加载或重新加载时,执行完所在网页第一次被加载或重新加载时,执行完init()方法后,方法后,start()就自动开始执行,使得就自动开始执行,使得applet成为成为“活动活动”的。或者当浏览器在链接到另一个的。或者当浏览器在链接到另一个url后又重新返后又重新返回其所在的网页时,回其所在的网页时,start()就会再执行一遍。与就会再执行一遍。与init()方方法不同的是法不同的是start()方法在小应用程序的整个生命周期中可方法在小应用程序的整个生命周期中可以被调用多次,用于启动小应用程序的执行。此方法是以被调用多次
9、,用于启动小应用程序的执行。此方法是applet应用程序的主要部分。应用程序的主要部分。上一页 下一页返回5.3 项目支撑知识项目支撑知识3.停止停止:stop()public void slop()该方法在生命周期中可以被多次调用。每当用户离开该方法在生命周期中可以被多次调用。每当用户离开applet所在网页,使该网页变成不活动状态或最小化浏览所在网页,使该网页变成不活动状态或最小化浏览器时执行。如果浏览器又回到此页,则器时执行。如果浏览器又回到此页,则start()又被调用来又被调用来启动启动java applet applet通常用该方法使声音和动画这通常用该方法使声音和动画这些耗用系统
10、资源的工作停止,避免影响系统的运行速度。如些耗用系统资源的工作停止,避免影响系统的运行速度。如果用户在小程序中设计了播放音乐的功能,而没有在果用户在小程序中设计了播放音乐的功能,而没有在stop()方法中给出停止播放它的有关语句,那么当离开此页去浏览方法中给出停止播放它的有关语句,那么当离开此页去浏览其他页时,音乐将不能停止。如果没有定义其他页时,音乐将不能停止。如果没有定义stop()方法,当方法,当用户离开用户离开java applet所在的页面时,所在的页面时,java applet将继将继续使用系统的资源。若定义了续使用系统的资源。若定义了 stop()方法,则可以挂起方法,则可以挂起
11、applet的执行。的执行。上一页 下一页返回5.3 项目支撑知识项目支撑知识4.删除删除: destory()public void destroy()当包含当包含applet的页面被关闭时,的页面被关闭时,destroy方法由自动浏览方法由自动浏览器或器或appletviewer调用,通知此调用,通知此applet它正在被回收,它正在被回收,它应该销毁分配给它的任何资源。可以使用它应该销毁分配给它的任何资源。可以使用destroy()方法方法清除清除applet占用的资源。在实际应用中,这个方法很少被占用的资源。在实际应用中,这个方法很少被重载,因为一旦重载,因为一旦applet运行结束,
12、运行结束,java系统会自动清除它系统会自动清除它所占用的变量空间等资源。该方法是父类所占用的变量空间等资源。该方法是父类applet中的方法,中的方法,不必重写这个方法,直接继承即可。不必重写这个方法,直接继承即可。上一页 下一页返回5.3 项目支撑知识项目支撑知识总之,当总之,当start()方法运行时,方法运行时,applet在浏览器上成为可视在浏览器上成为可视化的,化的,stop()方法运行时,方法运行时,applet在浏览器上成为不可视在浏览器上成为不可视化的,也就是说化的,也就是说start()和和stop()两个方法构成了两个方法构成了applet生命周期中的可视化周期,占据生命
13、周期中的可视化周期,占据web浏览器页面。换句话说浏览器页面。换句话说:从调用从调用init()方法,方法,applet开始运行,到调用开始运行,到调用destroy()方法,方法,applet停止运行,回收资源,这个流程称为停止运行,回收资源,这个流程称为applet的生命周期。如的生命周期。如图图5-2所示。所示。上一页 下一页返回5.3 项目支撑知识项目支撑知识5.3.4项目开发背景知识项目开发背景知识4 applet类的类的显示方法显示方法apple本质上是图形方式的,本质上是图形方式的,system.out.println()是是没有用的,可以创建没有用的,可以创建paint()方法
14、绘图。只要刷新方法绘图。只要刷新applet的的显示,显示,paint()方法就会被调用。方法就会被调用。绘图绘图:paint()方法方法public void paint(graphics g)上一页 下一页返回5.3 项目支撑知识项目支撑知识applet类的此方法用于绘制容器。类的此方法用于绘制容器。paint()方法带有一个参方法带有一个参数,它是数,它是java.awt graphics类的一个实例,用于在类的一个实例,用于在applet中绘图或写入文本。中绘图或写入文本。graphic是类是所有图形上下是类是所有图形上下文的抽象基类,允许应用程序可以在组件以及闭屏图像上进文的抽象基类
15、,允许应用程序可以在组件以及闭屏图像上进行绘制。行绘制。public abstract void drawstring(string str, int x,int y)graphics类的此方法使用此图形上下文的当前字体和颜色类的此方法使用此图形上下文的当前字体和颜色绘制由指定绘制由指定string给定的文本。最左侧字符的基线位于此图给定的文本。最左侧字符的基线位于此图形上下文坐标系统的形上下文坐标系统的(x,y)位置处。位置处。上一页 下一页返回5.3 项目支撑知识项目支撑知识str:要绘制的:要绘制的stringx:x坐标坐标y:y坐标坐标2.重绘重绘:repaint()方法方法publi
16、c void repaint()applet类的此方法用于重绘组件。当用户使用类的此方法用于重绘组件。当用户使用repaint()方法时,将导致下列事情发生方法时,将导致下列事情发生:程序首先清除程序首先清除repaint()方法方法以前所画的内容,然后再调用以前所画的内容,然后再调用repaint()方法。方法。改变显示可调用改变显示可调用repaint()。repaint()将会产生一个调用将会产生一个调用update()的的awt线程。线程。上一页 下一页返回5.3 项目支撑知识项目支撑知识3.更新更新:update ( graphics g)方法方法public void update
17、(graphics g)applet类的此方法用于更新容器。类的此方法用于更新容器。update方法通常清除当方法通常清除当前的显示并调用前的显示并调用paint()。paint(),update()和和repaint()方法间的内在关系如方法间的内在关系如图图5-3所示。在所示。在applet中,中,applet的显示更新由一个专门的的显示更新由一个专门的awt线程控制。线程控制。上一页 下一页返回5.3 项目支撑知识项目支撑知识该线程主要负责两种情况的处理该线程主要负责两种情况的处理:第一种情况是在第一种情况是在applet的的初次显示或浏览器窗口大小发生变化,而引起初次显示或浏览器窗口大
18、小发生变化,而引起applet的显的显示发生变化时,将调示发生变化时,将调paint()方法进行方法进行applet绘制绘制;第二种第二种情况是情况是applet代码需要更新内容,从程序中调用二代码需要更新内容,从程序中调用二paint()方法,则方法,则awt线程在接收到该方法的调用后,将调用线程在接收到该方法的调用后,将调用applet的的update()方法,而方法,而update()方法再调用构件的方法再调用构件的paint()方法实现显示的更新。方法实现显示的更新。上一页 下一页返回5.3 项目支撑知识项目支撑知识5.3.5项目开发背景知识项目开发背景知识5 applet标标记记运行
19、运行java applet时必须将其字节码嵌人到时必须将其字节码嵌人到html文件中才文件中才能够运行。能够运行。和和这一对标记标志着这一对标记标志着html文件的开始和结束。若在文件的开始和结束。若在html文件中嵌入文件中嵌入java applet,需要通过使用一组特殊标记,需要通过使用一组特殊标记和和 。嵌入嵌入java applet标记的完整语法标记的完整语法:上一页 下一页返回5.3 项目支撑知识项目支撑知识上一页 下一页返回5.3 项目支撑知识项目支撑知识语法说明:语法说明:archive=archivelist:可选属性,描述了一个或多个含有可选属性,描述了一个或多个含有将被将被
20、“预装预装”的类和其他资源的的类和其他资源的archives。类的装载由带。类的装载由带有给定有给定codehbase的的appletclassloader的一个实例来的一个实例来完成。完成。archivelist中的中的archives以逗号以逗号(,)分隔。分隔。?code=appletfile.class:必选属性,它给定了含有已编译必选属性,它给定了含有已编译好的好的applet子类的文件名。也可用子类的文件名。也可用package.appletfile.class的格式来表示。这个文件与的格式来表示。这个文件与要装入的要装入的html文件的基文件的基url有关,它不能含有路径名。有关
21、,它不能含有路径名。上一页 下一页返回5.3 项目支撑知识项目支撑知识width=pixels height=pixels:必选属性,给出必选属性,给出applet显示区域的初始宽度和高度显示区域的初始宽度和高度(以象素为单位以象素为单位),不包括,不包括applet所产生的任何窗口或对话枢。所产生的任何窗口或对话枢。codebase=codebaseurl:可选属性,指定了可选属性,指定了applet的的基基url包含有包含有applet代码的目录。如果这一属性未指定,代码的目录。如果这一属性未指定,则采用文档的则采用文档的url。alt=alternatetext:可选属性,指定了当浏览器
22、能读取可选属性,指定了当浏览器能读取applet标记但不能执行标记但不能执行java applet时要显示的文本。时要显示的文本。name=appletinstancenatme:可选属性,为可选属性,为applet实例指定有关名称,从而使得在同一页面上的实例指定有关名称,从而使得在同一页面上的applet可找可找到彼此到彼此(以及互相通信以及互相通信)。上一页 下一页返回5.3 项目支撑知识项目支撑知识align=alignment:可选属性,指定了可选属性,指定了applet的对齐方式。的对齐方式。它的可取值与基本的它的可取值与基本的html中中img标记的相应属性相同,为标记的相应属性相
23、同,为left, right, top, texttop, middle,absmiddle,baseline,bottom和和absbottotn 。vspace=pixels hspace=pixels:可选属性,指定了在可选属性,指定了在applet上下上下(vspace)及左右及左右(hspace)的象素数日。其的象素数日。其用法与用法与img标记的标记的vspace和和hspace属性相同。属性相同。:可选属性,提供了一种可带有由可选属性,提供了一种可带有由“外部外部”指定的数值的指定的数值的applet,它对一个,它对一个java应用程序的作用与命令行参数相同。应用程序的作用与命令
24、行参数相同。上一页 下一页返回5.3 项目支撑知识项目支撑知识 applet用用getparameter()方法来存取它们的属性。方法来存取它们的属性。alternatehtml:可选属性,不支持可选属性,不支持java程序执行的浏览程序执行的浏览器将显示被包括在器将显示被包括在和和标记之间的任标记之间的任何常规的何常规的html;而可支持而可支持java技术的浏览器则忽略介于这技术的浏览器则忽略介于这两个标记之间的两个标记之间的html代码。代码。上一页返回5.4 项目实施项目实施【例【例5-1】完成】完成applet的程序和的程序和html文件,使程序输出文件,使程序输出结果如结果如图图5
25、-4所示。所示。applet程序如下:程序如下:下一页返回5.4 项目实施项目实施html代码如下:代码如下:评析评析:本项目考查的是本项目考查的是applet的使用。的使用。在在html文档中,可通过文档中,可通过applet标签指定标签指定java小程序。在小程序。在applet标签中,标签中,code用来指定用来指定java小程序文小程序文件件;cadebase用来指定用来指定java小程序存放的路径。小程序存放的路径。上一页 下一页返回5.4 项目实施项目实施在在html文档中,可通过文档中,可通过param标签向标签向java小程序传递参小程序传递参数。在数。在param标签中,标签
26、中,name属性用来指定属性用来指定java小程序的小程序的参数名,参数名,value用来指定参数值。用来指定参数值。另外本项目还考查了另外本项目还考查了graphics类的应用。类的应用。graphics类提供了三个在部件和图像中绘制文本的方法。类提供了三个在部件和图像中绘制文本的方法。本题所涉及的是本题所涉及的是drawstring()方法。方法。void drawstring(string str, int x,int y)drawstring()方法用一个包含将要被显示文本的字符串实方法用一个包含将要被显示文本的字符串实例以及两个指定文本开始坐标的整型值作为参数。例以及两个指定文本开始
27、坐标的整型值作为参数。上一页 下一页返回5.4 项目实施项目实施上面列的代码显示了在上面列的代码显示了在paint()方法内使用方法内使用draw string()方法。这个范例代码在含方法。这个范例代码在含paint()方法的部件中显示字符方法的部件中显示字符“欢迎你参加欢迎你参加java考试考试!”,x和和y坐标指明文本框左下角位坐标指明文本框左下角位置。置。上一页 下一页返回5.4 项目实施项目实施【例【例5-2】在】在java 2.html的的applet标记中,定义了参数标记中,定义了参数strings并给出了它对应的字符串值,并给出了它对应的字符串值,applet java 2中将
28、中将显示这个字符串。显示这个字符串。applet程序如下:程序如下:上一页 下一页返回5.4 项目实施项目实施html程序如下:程序如下:上一页 下一页返回5.4 项目实施项目实施评析评析:本项目是本项目是applet的使用。的使用。在在html文档中,可通过文档中,可通过applet标签指定标签指定java小程序。在小程序。在applet标签中,标签中,code用来指定用来指定java小程序文小程序文件件;cadebase用来指定用来指定java小程序存放的路径。小程序存放的路径。上一页 下一页返回5.4 项目实施项目实施在在html文档中,可通过文档中,可通过param标签向标签向java
29、小程序传递参小程序传递参数。在数。在param标签中,标签中,name属性用来指定属性用来指定java小程序的小程序的参数名,参数名,value用来指定参数值。用来指定参数值。【例【例5-3】读取传递给】读取传递给applet的参数的参数image,并将所传递,并将所传递的参数的图片显示出来的参数的图片显示出来;在状态栏中显示出鼠标位置。在状态栏中显示出鼠标位置。上一页 下一页返回5.4 项目实施项目实施上一页 下一页返回5.4 项目实施项目实施、其正确结果输出如其正确结果输出如图图5-5所示。所示。上一页 下一页返回5.4 项目实施项目实施评析评析:本项目是本项目是applet中参数的传递及
30、图片的显示。中参数的传递及图片的显示。在在html文档中,可通过文档中,可通过param标签向标签向java小程序传递参小程序传递参数。在数。在param标签中,标签中,name属性用来指定属性用来指定java小程序的小程序的参数名,参数名,value用来指定参数值。本题通过用来指定参数值。本题通过getparameter获得获得appler中的参数中的参数image的值。的值。本项目还涉及到了事件适配器,它提供了一种简单的实现监本项目还涉及到了事件适配器,它提供了一种简单的实现监听器的手段,可以缩短程序代码,因为它是通过重写需要的听器的手段,可以缩短程序代码,因为它是通过重写需要的方法,无关
31、的方法不用实现。方法,无关的方法不用实现。上一页 下一页返回5.4 项目实施项目实施this.addmousemotionlistener ( new mousemotionadapter()采用了鼠标运动适配器采用了鼠标运动适配器mousemotionadapter,重写了重写了mousemoved()方法,方法,在方法中通过在方法中通过showstatus(strtemp) ;显示出了鼠标的显示出了鼠标的位置。位置。另外本项目还考查了另外本项目还考查了graphics类的应用。类的应用。graphic是类提供了画线和圆这样的简单几何类型的方法,是类提供了画线和圆这样的简单几何类型的方法,另外也提供了显示文本的方法。为了绘制,程序要求有一个另外也提供了显示文本的方法。为了绘制,程序要求有一个有效的图形环境有效的图形环境(由由graphics类的一个实例表示类的一个实例表示)。因为。因为(graphics类是一个抽象的基类,它不能直接被实例化。类是一个抽象的基类,它不能直接被实例化。上一页 下一页返回5.4 项目实施项目实施一个具体的实例被一个部件创建,并且然后作为一个参数传一个具体的实例被一个部件创建,并且然后作为一个参数传递给程序到一个部件的递给程序到一个部件的update()和和paint()方法。这两个方法。这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东体育职业技术学院《电工电子技术B》2023-2024学年第一学期期末试卷
- 广东外语外贸大学南国商学院《无线传感器网络技术》2023-2024学年第一学期期末试卷
- 广东生态工程职业学院《塑料成型工艺与模具设计》2023-2024学年第一学期期末试卷
- 广东女子职业技术学院《交互设计基础》2023-2024学年第一学期期末试卷
- 【全程复习方略】2020年人教A版数学理(广东用)课时作业:第十章-第八节二项分布、正态分布及其应用
- 【2021届备考】2020全国名校化学试题分类解析汇编(第三期):E单元-物质结构-元素周期律
- 【全程复习方略】2020年北师版数学文(陕西用)课时作业:第六章-第一节不等关系与不等式
- 《典型冗余分析图》课件
- 2025年人教版七年级数学寒假预习 第01讲 相交线
- 2025年人教版七年级数学寒假复习 专题03 代数式(3重点串讲+10考点提升+过关检测)
- 2022-2023学年广东省广州市花都区六年级(上)期末英语试卷(含答案)
- 机械设计制造及其自动化实习总结报告
- 2024年湖南省高中学业水平合格考物理试卷真题(含答案详解)
- 机动车检测站质量手册(根据补充技术要求修订)
- 2024年(学习强国)思想政治理论知识考试题库与答案
- 上海上海市医疗急救中心招聘笔试历年典型考题及考点附答案解析
- 《大数据分析技术》课程标准
- 2024年河南农业职业学院单招职业适应性测试题库及参考答案
- 期末考试-公共财政概论-章节习题
- AED急救知识课件
- 高中物理课件:Tracker软件在高中物理实验教学中的应用-
评论
0/150
提交评论