您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Java语言程序设计基础教程课件(第11章)
第11章JavaApplet基础JavaApplet的运行原理Applet类及其常用方法一个显示动画的Applet程序Applet中使用URLApplet中建立新线程Applet中播放声音11.1JavaApplet的运行原理一个JavaApplet程序中必须有一个类是Applet类的子类。称该子类是JavaApplet的主类,并且主类必须修饰为public。JavaApplet程序是通过浏览器来执行的,因此,它和Java应用程序有许多不同之处。11.1.1Applet的运行环境一个Java应用程序经过编译成.class后,可直接通过Java解释器来执行。一个JavaApplet在执行时也是先被编译成为.class文件,但必须再将字节码文件嵌入到Web页面中,通过浏览器或使用JDK中的appletviewer命令来运行。下面通过例子来说明一个JavaApplet的运行原理。【例11-1】一个名为HelloEducation.java的Applet类,在浏览器的坐标(25,25)位置显示字符串。packagechapter11;importjava.applet.Applet;//Applet类是所有的Javaapplet的父类;importjava.awt.Graphics;//在进行显示输出时,需要用到类Graphics的对象;publicclassHelloEducationextendsApplet{//程序员给这个类取名为HelloEducation//所有的applet程序都是Applet类的子类publicStrings;publicvoidinit(){s=newString(WelcometoTongfangEducation);//生成一个字符串对象}publicvoidpaint(Graphicsg){g.drawString(s,25,25);//在浏览器中坐标为(25,25)的位置显示字符串s}}Applet应用程序必须嵌入在HTML页面中,才能得到解释执行;Applet可以从Web页面中获得参数,并和Web页面进行交互。含有Applet的网页的HTML文件代码中必须带有<applet>和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小程序代码并在本地计算机上执行该Applet小程序。Applet是一种Java的小程序,它通过使用该Applet的HTML文件,由支持Java的网页浏览器下载运行。也可以通过java开发工具的appletviewer来运行。Applet程序离不开使用它的HTML文件。这个HTML文件中关于Applet的信息至少应包含以下三点:字节码文件名(编译后的Java文件,以.class为后缀);字节码文件的地址;在网页上显示Applet的方式。一个HTML文件增加Applet有关的内容只是使网页更加富有生气,如添加声音、动画等这些吸引人的特征,它并不会改变HTML文件中与Applet无关的元素。11.1.2什么是appletviewerappletviewer是JDK下的一个Applet查看工具,在Java安装目录下的bin文件夹中可以找到这个可执行文件。appletviewer带有一个命令行参数形式的URL,它指向一个含有Applet引用的HTML文件。这个Applet引用是一个指定了appletviewer要装载代码的HTML标记:appletcode=HelloApplet.classwidth=220height=160/applet11.1.3JavaApplet程序开发步骤Applet程序开发主要步骤如下:选用EDIT或WindowsNotepad等工具作为编辑器建立JavaApplet源程序。把Applet的源程序转换为字节码文件。编制使用class的HTML文件。在HTML文件内放入必要的<APPLET>语句。下面举一个最简单的HelloWorld例子11-2来说明Applet程序的开发过程:1.编辑Applet的java源文件创建文件夹C:\ghq,在该文件夹下建立HelloWorld.java【例11-2】importjava.applet.Applet;importjava.awt.*;publicclassHelloWorldextendsApplet//继承Appelet类,这是AppeletJava程序的特点{publicvoidpaint(Graphicsg){g.drawString(HelloWorld!,5,35);}}保存上述程序在C:\java_work\11\HelloWorld.java文件里。2.编译Applet编译HelloWorld.java源文件可使用如下JDK命令:注意:如果编写的源程序违反了Java编程语言的语法规则,Java编译器将在屏幕上显示语法错误提示信息。源文件中必须不含任何语法错误,Java编译器才能成功地把源程序转换为appletviewer和浏览器能够执行的字节码程序。成功地编译Javaapplet之后生成响应的字节码文件HelloWorld.class的文件。用资源管理器或DIR命令列出目录列表,将会发现目录C:\ghq中多了一个名为HelloWorld.class的文件。3.创建HTML文件在运行创建的HelloWorld.class之前,还需创建一个HTML文件,appletviewer或浏览器将通过该文件访问创建的Applet。为运行HelloWorld.class,需要创建包含如下HTML语句的名为HelloWorld.html的文件。【例11-3】htmlheadtitleMyapplet'HelloWorld'startingpage/title/headbodyappletcodebase=.code=HelloWorld.classname=HelloWorldwidth=200height=100!--paramname=p0value=paramname=p1value=--/applet/body/html4.执行HelloWorld.html如果用appletviewer运行HelloWorld.html,需输入如下的命令行:如下图所示,可以看出,该命令启动了appletviewer并指明了html文件,该html文件中包含对应于HelloWorld的<applet>语句。11.1.4Applet的安全机制浏览一个包含Applet的网页时,实际上是从远程服务器上下载到用户本地机上运行的,所以安全问题显得十分重要。Applet本身设定了相应的安全规则来保证用户的系统安全,这些规则包括:Applet永远无法运行本地机上的可执行程序。Applet除了与所在的服务器联系外,无法再同任何其他的服务器取得联系。Applet不能对本地文件系统进行读写操作。除了本地机上使用的Java版本号、操作系统名称和版本、系统使用的特殊字符外,Applet不能获取其他有关本地计算机的信息。特别是本地系统的用户名以及Email等信息。Applet的弹出式窗口都会带有一个警告信息。由于Applet是在Java虚拟机中解释执行,而不是由用户计算机的CPU直接运行,才使得这些安全规则成为可能。因为解释器会检查所有的关键指令和程序运行范围,能够防止恶意编写的Applet导致计算机崩溃、重写系统内存或改变系统权限。在某些情况下,通过使用签名的Applet还可以针对不同的情况给予其不同级别的安全等级。被签名的Applet携带一个可以证明其签名者身份的证书,加密技术能够保证这种证书不能被伪造,如果用户信任签名者,就可以赋给Applet额外的权限。11.2Applet类及其方法Applet类是所有Applet应用的基类,所有的Java小应用程序都必须继承该类。如下所示。importjava.applet.*;publicclassOurAppletextendsApplet{............}Applet类的构造函数只有一种,即:publicApplet();11.2.1Applet类的基本方法表11-1Applet的常用方法类名功能描述finalvoidsetStub(AppletStubstub)设置当前Applet与应用程序运行所需浏览器环境之间的接口booleanisActive();判断一个Applet是否处于活动状态URLgetDocumentBase();检索表示该Applet运行的文件目录的对象URLgetCodeBase();获取该Applet代码的URL地址StringgetParameter(Stringname);获取该Applet由name指定参数的值AppletContextgetAppletContext();返回浏览器或小应用程序观察器voidresize(intwidth,intheight);调整Applet运行的窗口尺寸voidresize(Dimensiond);调整Applet运行的窗口尺寸voidshowStatus(Stringmsg);在浏览器的状态条中显示指定的信息ImagegetImage(URLurl);按url指定的地址装入图象ImagegetImage(URLurl,Stringname)按url指定的地址和文件名加载图像AudioClipgetAudioClip(URLurl)按url指定的地址获取声音文件AudioClipgetAudioClip(URLurl,Stringname)按url指定的地址和文件名获取声音StringgetAppletInfo()返回Applet应用有关的作者、版本和版权方面的信息String[][]getParameterInfo()返回描述Applet参数的字符串数组,该数组通常包含三个字符串:参数名、该参数所需值的类型和该参数的说明voidplay(URLurl)加载并播放一个url指定的音频剪辑voiddestroy()撤消Applet及其所占用的资源。若该Applet是活动的,则先终止该Applet的运行11.2.2Applet运行状态控制方法Applet类中提供了四种基本方法用来控制其运行状态:init()、start()、stop()、destroy()。它们构成了创建任何Applet的框架,并实现了一个Applet从诞生、执行到停止、消亡的生命周期。(1)init()方法:Applet第一次被加载时调用,主要功能是完成初始化操作,包括创建Applet对象、分配内存、设置初始状态等,在Applet生命周期中只运行一次。通常可以在该方法中完成从网页向Applet传递参数,添加用户界面的基本组件等操作。其格式为:publicvoidinit(){……}(2)start()方法:初始化后或Applet停止运行随后又重新启动时调用,主要用于创建、启动及重新启动Applet,系统在调用完init()方法之后,将自动调用start()方法。而且,每当用户离开包含该Applet的主页后又再返回时,系统又会再执行一遍start()方法。这就意味着start()方法可以被多次执行,而不像init()方法。因此,可把只希望执行一遍的代码放在init()方法中。可以在start()方法中开始一个线程,如继续一个动画、声音等。在Applet生命周期中,start()方法被调用多次,一般与stop方法配套运行。其格式为:publicvoidstart(){……}(3)stop()方法:这个方法在用户离开Applet所在页面时执行,该方法的主要功能是停止耗时操作,以免降低系统运行速度,该方法会在Applet生命周期中调用多次。它使你可以
本文标题:Java语言程序设计基础教程课件(第11章)
链接地址:https://www.777doc.com/doc-3685711 .html