8.Java Applet Java 语言程序设计(第2版) 电子教案.ppt
《8.Java Applet Java 语言程序设计(第2版) 电子教案.ppt》由会员分享,可在线阅读,更多相关《8.Java Applet Java 语言程序设计(第2版) 电子教案.ppt(67页珍藏版)》请在三一文库上搜索。
1、第8章 Java Applet,8.1 Applet概述,Java Applet是一种特殊的Java应用程序。英文后缀-let是小的意思,Java Applet即Java小应用程序,常简称为Java小程序或Java小应用。 8.1.1 Java Applet 的特点 Applet被嵌入在一个HTML文件中,在网上传播,在一个网络浏览器的支持下可下载并运行。Java Applet运行在一个窗口环境中,提供基本的绘画功能、动画和声音的播放功能,可实现内容丰富多彩的动态页面效果、页面交互功能,实现网络交流能力。,从某种意义上来说,Applet有些类似于组件,它实现的功能是不完全的,它必须借助于浏览器
2、中预先设计好的功能和已有的图形界面。Applet所要做的,是接收浏览器发送给它的消息和事件,并做出及时的反映。另外,为了协调与浏览器的合作过程,Applet中有一些固定的只能由浏览器在特定时刻和场合调用的方法。 8.1.2 HTML语言 Java小程序必须嵌入在HTML语言中由浏览器运行。HTML语言是“HyperText Markup Language”的简写,称为“超文本标记语言”。它是一种排版语言,在给出具体信息的同时,也用各种标记(tag)来指出这些信息的显示格式。WWW浏览器可以理解这些标记,并按照标记的要求在浏览器的显示页面中把HTML文件中的信息显示出来。,常用HTML标记及其意
3、义如下: 标志整个HTML文件的开始和结束 括起部分为窗口标题 括起部分为窗口头部内容 括起部分为页面内容 文字斜体、粗体、删除线、下划线显示 至 括起文字用指定标题样式显示 、 对齐方式设置为左、右、居中对齐 设置文本的颜色、字体、大小等 链接到指定的HTM文件 显示指定的GIF图片文件 显示长度为n的水平分割线 开始一个新的段落,【例8.1】一个简单HTML文件(文件的扩展名为.html或.htm)。(HTML文件是文本文件,可用任一文本文件编辑器进行编辑,HTML语言标记名不区分大小写) Java HTML Test This is a HTML Test. Java Applet Ja
4、va Application ,例8.1 HTML文件用IE浏览器观察的结果,8.1.3 HTML文件中嵌入Applet 在例8.1的HTML文件中,未嵌入Java Applet。将Java Applet嵌入网页是通过标记来实现的。在一个Applet标记单元中,有如下的标记内容。 ,. alternateHTML 其中,加方括号的参数是可选的,Applet标记的参数解释如下: (1) CODEBASE = codebaseURL 决定Applet的URL位置和目录,若缺省,则使用当前HTML页面的路径。例如: CODEBASE = “http:/ (2) CODE = AppletFile 指
5、出Applet的Applet子类名字。它的路径是相对于CODEBASE而言的,不能为绝对路径。例如: CODE = Clock (3) ALT = alternateText 指明当浏览器不能执行Applet时所显示的文字。,(4) NAME = AppletInstanceName 指出Applet实例的名称,多用于在多个Applet的通信中做标识符。 (5) WIDTH = pixels和HEIGHT = pixels 指定Applet显示区域的大小,单位为像素点数。例如: WIDTH = 200 HEIGHT = 150 (6) ALIGN =alignment 设置Applet在页面上
6、的排列对齐方式,有LEFT、RIGHT、CENTER、TOP、TEXTTOP、MIDDLE、ABSMIDDLE、BASELINE、BOTTON、ABSBOTTON等多种。例如: ALIGN = CENTER,(7) VSPACE = pixels和HSPACE = pixels 设置Applet与周围文本之间的间距,单位是像素点数。例如: VSPACE = 15 HSPACE = 15 (8) PARAM NAME = AppletAttribute VALUE =value 从外界获取参数。PARAM的属性包括NAME和VALUE两个,其中NAME给出参数名,VALUE给出参数值。一个App
7、let单元可以包含多个PARAM单元。 (9) alternateHTML 标识的文字在不支持Applet标记的浏览器中显示,代替Applet。例如,要把一个名为myapplet.class的字节码文件嵌入HTML文件中,可以采用如下格式: ,8.2 Applet的创建和执行,8.2.1 Applet的类层次及框架结构 1.Applet类的类层次 所有的Java Applet都必须声明为java.applet.Applet类的子类或javax.swing.JApplet类的子类。通过这个Applet类或JApplet类的子类,才能完成Applet与浏览器的配合。 Applet类有如下的继承关系
8、。 java.lang.Object(Object类是所有类的根类) java.awt.Component(抽象组件类) java.awt.Container(抽象容器类),java.awt.Panel(实现了Container所有方法的非抽象面板类) java.applet.Applet javax.swing.JApplet 从类层次可以了解到,Applet类除了可以拥有自己的方法外,还可以继承它的父类的方法。注意:父类都属于java.awt包,Applet属于java.applet包。javax.swing.JApplet 类是 java.applet.Applet的扩展版,它提供了对基
9、础类库JFC/Swing组件体系结构的支持,它属于javax.swing包。 Applet和JApplet类为public类,编写的Applet的主类也必须声明为public,因此文件名必须与类名相同(包括大小写),源文件名必须为类名加.java。,2.Applet的框架结构 Applet的一般结构框架形式如下: import java.awt.*; import java.applet.*; public class 小程序类名 extends Applet public void init() / 初始化、设置字体、装载图片等 public void start() / 启动或恢复执行 p
10、ublic void stop() / 执行被挂起 public void destroy() / 执行关闭活动 public void paint(Graphics g) / 进行绘图操作等 ,在上面列出的各种Applet方法中,最基本的是init()和paint()方法。 若为继承JApplet类的小程序,方法init()、start()和stop()等都未变,但在绘图、加入组件等方面与继承Applet类的小程序有所不同(见第9章)。继承JApplet类的小程序应使用下面的引入语句和类声明: import javax.swing.*; public class 小程序类名 extends
11、JApplet . 8.2.2 Applet的执行 1用AppletViewer执行 Java SDK开发环境中提供的小程序观察器appletviewer.exe是一个浏览Applet的简易工具,它仅仅使用HTML文件中需要运行Applet的各种信息,而其他内容将不会被显示出来。,appletviewer通过命令行方式运行,它弹出一个类似浏览器的画面,包括一个Applet菜单、一个图形显示区域和一个位于显示区域下方的状态行。appletviewer运行时要指定一个嵌入Applet字节码的HTML文件,使得给定的Applet可以在显示区域中运行。 2在浏览器中执行 支持Java Applet的浏
12、览器运行嵌入Applet单元的HTML文档即可运行其中的Applet程序。但常见的浏览器只能支持JDK 1.1版的Java Applet。若需要使用新版本的Java SDK来开发浏览器可运行Java Applet,可安装Java SDK相应版本的插件Plugin,并可用HtmlConverter.exe程序来变换原HTML文档为新的HTML文档格式。,3在网页编辑器FrontPage2000中执行 MicroSoft FrontPage2000是一种常用的网页设计工具,它集成在MicroSoft Offices 2000中。使用FrontPage2000可以用所见即所得的方式进行网页设计,且不
13、需要网页设计者写任何HTML代码。 8.2.3 Applet的主要方法及生命周期 在浏览器中运行 Applet程序,从运行开始到运行结束,Applet程序表现为一些不同的行为,例如,初始化、绘图、退出等。每一种行为都对应一个相关的方法。在Java Applet中有五种相对重要的方法:初始化init()、开始执行start()、停止执行stop()、退出destroy()、绘画paint()。前四种方法分别对应Applet从初始化、启动、暂停到消亡的生命周期的各个阶段。,1.public void init()初始化 在整个Applet生命周期中,初始化只进行一次。当第一次浏览含有Applet的
14、Web页时,浏览器将进行下面的工作: (1)下载该Applet。 (2)创建一个该Applet主类的实例对象。 (3)调用init()对Applet自身进行初始化。 在init()方法中可设置Applet初始状态、载入图形或字体、获取 HTML中 Applet标记单元中设定的参数等。 2.public void start()启动 在整个Applet生命周期中,启动可发生多次。在下列情况下,浏览器会调用start()方法: (1)Applet第一次载入时。,(2)离开该Web页后,再次进入时(用back,forward)。 (3)Reload该页面时。 (4)在浏览含有Applet的Web页时
15、用浏览器右上角缩放按钮缩放浏览窗口大小时。 在start()方法中可启动一线程来控制Applet,给引入类对象发送消息,或以某种方式通知Applet开始运行。 3.public void stop()停止执行 在整个Applet生命周期中,停止执行可发生多次。 在下列情况下,浏览器会调用stop()方法: (1)离开Applet所在 Web页时(用back,forward)。 (2)Reload该页面时。 (3)在浏览含有Applet的Web页时用浏览器右上角缩放按钮缩放浏览窗口大小时。,(4)close该Web页(彻底结束对该页面的访问),exit结束浏览器运行时(从含有该Applet的We
16、b页退出时)。 stop()挂起Applet,可释放系统处理资源.不然当浏览者离开一个页面时, Applet还将继续运行。 4.public void paint(Graphics g)绘制 发生下列情况时,浏览器会调用paint()方法,而且可根据需要产生多次调用。 (1)Web页中含有Applet的部分被卷入窗口时。 (2)Applet显示区域在视线内时调整浏览窗口大小、缩放浏览窗口、移动窗口或Reload等需要重绘窗口时都会调用paint()方法。 与前几个方法不同的是,paint()中带有一个参数Graphics g,它表明paint()需要引用一个Graphics类的实例对象。,在A
17、pplet中不用编程者操心,浏览器会自动创建Graphics对象并将其传送给paint()方法.但编程者应在Applet中引入Graphics类所在的包或该类: import java.awt.Graphics; 5.public void destroy()退出(撤销) 在整个Applet生命周期中,退出只发生一次。在彻底结束对该Web页的访问和结束浏览器运行时(close exit)调用一次。 destroy()是java.applet.Applet类中定义的方法,只能用于Applet。可在该方法中编写释放系统资源的代码。但除非用了特殊的资源如创建的线程,否则不需重写destroy()方法
18、,因为Java运行系统本身会自动进行“垃圾”处理和内存管理。,8.2.4 Applet和Application 由于程序结构不同的原因,在前面的讨论中,Java小程序Applet和Java应用程序Application是分别介绍的,实际上,可以编写出既可作为小程序,又可作为应用程序的Java程序,这样的程序可以独立地在操作系统下运行,又可在浏览器中运行。 【例8.3】既可作为Applet,又可作为Application运行的程序。 import javax.swing.*; import java.awt.*; import java.applet.Applet; import java.aw
19、t.event.*; public class App2 extends Applet public static void main(String args),JFrame frame=new JFrame(“Application“); App2 app = new App2(); frame.getContentPane().add( app,BorderLayout.CENTER); frame.setSize(150,100); frame.setVisible(true); frame.addWindowListener(new WindowControl(app); app.in
20、it(); app.start(); public void paint(Graphics g) g.drawString(“Hello,World!“,25,25); g.drawRect(20,10,80,20); ,public void destroy() System.exit(0); class WindowControl extends WindowAdapter Applet c; public WindowControl(Applet c) this.c=c; public void WindowControl(WindowEvent e) c.destroy(); ,例8.
21、3程序作为Application运行时的结果下图左,作为Applet运行时的结果如下图右。,8.2.5 HTML参数传送 与Application可从命令行获得系统传送的参数的情况类似,Applet则可以通过HTML文件来得到外部参数。这时通过HTML文档中PARAM参数标记来实现的。PARAM部分的name是参数名,而value是参数的值,它是字符串类型。在Applet中,通过方法: public String getParameter(String name) 可返回HTML中PARAM参数标记参数名为name的参数的值。例如,若Applet被指定为使用的HTML文件为: 那么,调用get
22、Parameter(“Color“)则返回值“blue“。,【例8.4】Applet运行时从HTML文件的Applet单元获取参数,参数及其相应的值见程序中的注释部分。 /* */ import java.awt.*; import javax.swing.*; public class ParamDemo extends JApplet String fontName; int fontSize;,float leading; boolean active; public void start() String param; fontName = getParameter(“fontName
23、“); if(fontName = null)fontName = “Not Found“; param = getParameter(“fontSize“); try if(param != null) / 如果未找到 fontSize = Integer.parseInt(param); else fontSize = 0; catch(NumberFormatException e) fontSize = -1; ,param = getParameter(“leading“); try if(param != null) / 如果未找到 leading = Float.valueOf(
24、param).floatValue(); else leading = 0; catch(NumberFormatException e) leading = -1; param = getParameter(“accountEnabled“); if(param != null) active = Boolean.valueOf(param).booleanValue(); public void paint(Graphics g) / 显示参数 g.drawString(“Font name: “ + fontName, 10, 20);,g.drawString(“Font size:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8.Java Applet Java 语言程序设计第2版 电子教案 语言程序设计 电子 教案
链接地址:https://www.31doc.com/p-3078123.html