JavaAppletJava语言程序设计(第2版)电子教案.ppt

上传人:牧羊曲112 文档编号:6509260 上传时间:2023-11-07 格式:PPT 页数:67 大小:316KB
返回 下载 相关 举报
JavaAppletJava语言程序设计(第2版)电子教案.ppt_第1页
第1页 / 共67页
JavaAppletJava语言程序设计(第2版)电子教案.ppt_第2页
第2页 / 共67页
JavaAppletJava语言程序设计(第2版)电子教案.ppt_第3页
第3页 / 共67页
JavaAppletJava语言程序设计(第2版)电子教案.ppt_第4页
第4页 / 共67页
JavaAppletJava语言程序设计(第2版)电子教案.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《JavaAppletJava语言程序设计(第2版)电子教案.ppt》由会员分享,可在线阅读,更多相关《JavaAppletJava语言程序设计(第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 Java Applica

4、tion,例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:/CODE=AppletFile指出Applet的Applet子类名字。它的路径是相对于CODE

5、BASE而言的,不能为绝对路径。例如: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在页面上的排列对齐方式,有LEFT、RIGHT、CENTER、TOP、TEXTTOP、MIDDLE、ABSMIDDLE、BAS

6、ELINE、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给出参数值。一个Applet单元可以包含多个PARAM单元。(9)alternateHTML标识的文字在不支持Applet标记的浏览器中显示,代替Applet。例如,要把一个名为m

7、yapplet.class的字节码文件嵌入HTML文件中,可以采用如下格式:,8.2 Applet的创建和执行,8.2.1 Applet的类层次及框架结构1.Applet类的类层次所有的Java Applet都必须声明为类的子类或类的子类。通过这个Applet类或JApplet类的子类,才能完成Applet与浏览器的配合。Applet类有如下的继承关系。java.lang.Object(Object类是所有类的根类)(抽象组件类)(抽象容器类),(实现了Container所有方法的非抽象面板类)从类层次可以了解到,Applet类除了可以拥有自己的方法外,还可以继承它的父类的方法。注意:父类都属

8、于java.awt包,Applet属于java.applet包。类是 的扩展版,它提供了对基础类库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()/初始化、设置字

9、体、装载图片等 public void start()/启动或恢复执行 public void stop()/执行被挂起 public void destroy()/执行关闭活动 public void paint(Graphics g)/进行绘图操作等,在上面列出的各种Applet方法中,最基本的是init()和paint()方法。若为继承JApplet类的小程序,方法init()、start()和stop()等都未变,但在绘图、加入组件等方面与继承Applet类的小程序有所不同(见第9章)。继承JApplet类的小程序应使用下面的引入语句和类声明:import javax.swing.*;

10、public class 小程序类名 extends JApplet.8.2.2 Applet的执行1用AppletViewer执行Java SDK开发环境中提供的小程序观察器appletviewer.exe是一个浏览Applet的简易工具,它仅仅使用HTML文件中需要运行Applet的各种信息,而其他内容将不会被显示出来。,appletviewer通过命令行方式运行,它弹出一个类似浏览器的画面,包括一个Applet菜单、一个图形显示区域和一个位于显示区域下方的状态行。appletviewer运行时要指定一个嵌入Applet字节码的HTML文件,使得给定的Applet可以在显示区域中运行。2在

11、浏览器中执行支持Java Applet的浏览器运行嵌入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

12、可以用所见即所得的方式进行网页设计,且不需要网页设计者写任何HTML代码。8.2.3 Applet的主要方法及生命周期在浏览器中运行 Applet程序,从运行开始到运行结束,Applet程序表现为一些不同的行为,例如,初始化、绘图、退出等。每一种行为都对应一个相关的方法。在Java Applet中有五种相对重要的方法:初始化init()、开始执行start()、停止执行stop()、退出destroy()、绘画paint()。前四种方法分别对应Applet从初始化、启动、暂停到消亡的生命周期的各个阶段。,1.public void init()初始化在整个Applet生命周期中,初始化只进行一

13、次。当第一次浏览含有Applet的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)在浏览含有Appl

14、et的Web页时用浏览器右上角缩放按钮缩放浏览窗口大小时。在start()方法中可启动一线程来控制Applet,给引入类对象发送消息,或以某种方式通知Applet开始运行。3.public void stop()停止执行在整个Applet生命周期中,停止执行可发生多次。在下列情况下,浏览器会调用stop()方法:(1)离开Applet所在 Web页时(用back,forward)。(2)Reload该页面时。(3)在浏览含有Applet的Web页时用浏览器右上角缩放按钮缩放浏览窗口大小时。,(4)close该Web页(彻底结束对该页面的访问),exit结束浏览器运行时(从含有该Applet的W

15、eb页退出时)。stop()挂起Applet,可释放系统处理资源.不然当浏览者离开一个页面时,Applet还将继续运行。4.public void paint(Graphics g)绘制发生下列情况时,浏览器会调用paint()方法,而且可根据需要产生多次调用。(1)Web页中含有Applet的部分被卷入窗口时。(2)Applet显示区域在视线内时调整浏览窗口大小、缩放浏览窗口、移动窗口或Reload等需要重绘窗口时都会调用paint()方法。与前几个方法不同的是,paint()中带有一个参数Graphics g,它表明paint()需要引用一个Graphics类的实例对象。,在Applet中

16、不用编程者操心,浏览器会自动创建Graphics对象并将其传送给paint()方法.但编程者应在Applet中引入Graphics类所在的包或该类:import;5.public void destroy()退出(撤销)在整个Applet生命周期中,退出只发生一次。在彻底结束对该Web页的访问和结束浏览器运行时(close exit)调用一次。destroy()是类中定义的方法,只能用于Applet。可在该方法中编写释放系统资源的代码。但除非用了特殊的资源如创建的线程,否则不需重写destroy()方法,因为Java运行系统本身会自动进行“垃圾”处理和内存管理。,8.2.4 Applet和Ap

17、plication由于程序结构不同的原因,在前面的讨论中,Java小程序Applet和Java应用程序Application是分别介绍的,实际上,可以编写出既可作为小程序,又可作为应用程序的Java程序,这样的程序可以独立地在操作系统下运行,又可在浏览器中运行。【例8.3】既可作为Applet,又可作为Application运行的程序。import javax.swing.*;import java.awt.*;import java.applet.Applet;import.*;public class App2 extends Applet public static void main(

18、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.init();app.start();public void paint(Graphics g)g.drawString(Hello,World!,25,25);

19、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.3程序作为Application运行时的结果下图左,作为Applet运行时的结果如下图右。,8.2.5 HTML参数传送与Application可从命令行获得系统传送的参数的情况类似,A

20、pplet则可以通过HTML文件来得到外部参数。这时通过HTML文档中PARAM参数标记来实现的。PARAM部分的name是参数名,而value是参数的值,它是字符串类型。在Applet中,通过方法:public String getParameter(String name)可返回HTML中PARAM参数标记参数名为name的参数的值。例如,若Applet被指定为使用的HTML文件为:那么,调用getParameter(Color)则返回值blue。,【例8.4】Applet运行时从HTML文件的Applet单元获取参数,参数及其相应的值见程序中的注释部分。/*/import java.aw

21、t.*;import javax.swing.*;public class ParamDemo extends JApplet String fontName;int fontSize;,float leading;boolean active;public void start()String param;fontName=getParameter(fontName);if(fontName=null)fontName=Not Found;param=getParameter(fontSize);try if(param!=null)/如果未找到 fontSize=Integer.parse

22、Int(param);else fontSize=0;catch(NumberFormatException e)fontSize=-1;,param=getParameter(leading);try if(param!=null)/如果未找到 leading=Float.valueOf(param).floatValue();else leading=0;catch(NumberFormatException e)leading=-1;param=getParameter(accountEnabled);if(param!=null)active=Boolean.valueOf(param

23、).booleanValue();public void paint(Graphics g)/显示参数g.drawString(Font name:+fontName,10,20);,g.drawString(Font size:+fontSize,10,35);g.drawString(Leading:+leading,10,50);g.drawString(Account Active:+active,10,65);由于getParameter()方法返回字符串,若希望得到数值参数,则需要进行类型转换。程序运行结果如下图所示。,8.3 Applet的AWT绘制,AWT是Abstract W

24、indow Toolkit的缩写,中文意义是抽象窗口工具包。所谓抽象,是指Java作为一种跨平台的语言,要求Java程序应能在不同的平台系统上运行。为了达到这个目的,集中了很多绘图、图形图像、颜色、字体、图形界面组件等类的AWT类库中的各种操作被定义成在一个并不存在的“抽象窗口”中运行。“抽象窗口”使得开发人员所设计的图形界面程序能够独立于具体的界面实现,可以适用于所有的平台系统。,8.3.1 AWT绘制基础要进行AWT绘制工作,要应用类中的几个方法,这些方法在绘图过程中作用各不相同。1.void paint(Graphics g)方法在本方法中进行绘图的具体操作,需编写绘图的程序段。在第一次

25、显示或显示图形被破坏需修复时,paint()方法被自动调用。paint()方法需要一个Graphics类的参数g,可认为它代表了Applet显示区域的背景,字形、颜色、绘图都针对这个对象进行。参数g由系统自动提供,不能自己创建Graphics类的对象。,在需要创建Graphics对象时,可通过getGraphics()方法获得一个Graphics对象:Graphics g=getGraphics();2.void update(Graphics g)方法本方法用于更新图形。它首先清除背景,然后设置前景,再调用paint()方法完成组件中的具体绘图。3.void repaint()方法本方法用于

26、重绘图形。在组件外形发生变化(如调整窗口大小)时,repaint()方法立即被系统自动调用。它调用update()方法以实现对组件的更新。repaint()方法有几种重载的方法,分别调用不同的repaint()方法,可实现对组件的局部重绘、延时重绘等功能。,8.3.2 应用字体字体是各种字母和符号的大小和外观的完整集合。字体定义了字符的外观,大小和字体类型(类型包括粗体,斜体或者普通体。字体类型也称为字形、字体风格等)。字体是通过字的轮廓来创建的。字的轮廓是个位图,它定义了字符或者符号的外观。同一类字体家族具有类似的外观,因为它们是通过同一种字形轮廓的集合创建的。同样,不同的字体家族使用不同的

27、轮廓集合,它们的外观就有明显的区别。在Java语言中,应用字体用Font类实现,一个Font类的对象表示了一种字体显示效果,包括字体、字形和字号等内容。Font类的构造方法为:,Font(String name,int style,int size)其中,字体名name有Courier、Dialog、Helvetica、Monospaced、SansSerif、Serif、TimesRoman等。字形style指的是字的外观,有三个字形的静态变量:Font.PLAIN(正常)、Font.BOLD(粗体)Font.ITALIC(斜体)。粗体和斜体可组合为粗斜体:Font.BOLD+Font.IT

28、ALIC。字体大小size以像素点数来度量,一个像素点(point)是1/72英寸。例如,下面的语句可创建一个Font类的对象:Font myFont=new Font(TimesRoman,Font.BOLD,18);myFont被设置为TimesRoman字体的18点粗体字。若希望使用该Font对象,可以使用Graphics类或需要设置字体的组件类的setFont()方法,该方法使用Font对象作为参数。,例如,对于Graphics类对象g:g.setFont(myFont);另外,与setFont()方法对应的方法是getFont()方法,它的作用是获得当前所用的字体。其他常用的Font

29、类方法有:public int getStyle()获得当前字形。public int getSize()获得当前字体大小。public String getName()获得当前字体名称。public String getFamily()获得当前字体家族名称。public boolean isPlain()测试当前字体是否为正常字形。public boolean isBold()测试当前字体是否为粗体。public boolean isItalic()测试当前字体是否为斜体。,【例8.5】字体设置和显示效果。import;import java.awt.*;public class FontD

30、emo extends JApplet public void paint(Graphics g)int baseline=60;/设置写字的基线 g.setColor(Color.black);/设置写字的颜色为黑色 g.drawLine(0,baseline,200,baseline);/绘出基线 g.setFont(new Font(Serif,Font.BOLD+Font.ITALIC,36);g.drawString(中国Wxyz,10,baseline);/输出字符串,例8.5运行结果如下图:,图中说明了基线(baseline,图中文字下方的一横线)的意义:基线是输出大写字母下边的

31、对齐线。drawString()等方法中输出字符串的坐标都是以基线为基准(y坐标)输出的。,8.3.3 应用颜色若希望程序的界面五彩斑斓,可应用java.awt包中的类Color。Color类提供了13种颜色常量,多种创建颜色对象的构造方法,以及多种获取和设置颜色的方法。Java采用24位颜色标准,每种颜色由红(R)、绿(G)、蓝(B)三种颜色的不同比例值组合而成,RGB的取值范围为0255。理论上可组合成1600万种以上的颜色。实际上要考虑设备的限制和需要。Color类的13种public final static的颜色常量见下页表。注意:颜色常量大小写均可(表中只给出小写的颜色常量)。,颜

32、色常量 颜色 RGB值Color.black 黑色 0,0,0Color.blue 蓝色 0,0,255 Color.green 绿色 0,255,0 Color.cyan 蓝绿色(青色)0,255,255 Color.darkGray 深灰色 64,64,64 Color.gray 灰色 128,128,128Color.lightGray 浅灰色 192,192,192 Color.red 红色 255,0,0 Color.magenta 洋红色 255,0,255Color.pink 粉红色 255,175,175Color.orange 橙色 255,200,0Color.yellow

33、 黄色 255,255,0Color.white 白色 255,255,255,Color类常用的构造方法如下:public Color(int r,int g,int b)public Color(float r,float g,float b)public Color(int rgb)其中,int类型的r,g,b分别表示红、绿、蓝的含量,取值范围是0255。float类型的r,g,b取值范围是0.01.0。int类型的rgb值按二进制位来分配红、绿、蓝的含量,1623位是红的含量,815位是绿的含量,07位是蓝的含量。Color类的颜色常量和实例对象可提供给需要设置颜色的对象方法,来改变当

34、前的颜色。例如,在Graphics类中,可用下面的方法来改变当前颜色:public void setColor(Color c);,设g是一个Graphics的对象,设置g当前颜色为红色的方法可以为下列方法之一。g.setColor(Color.red);/使用Color常量 g.setColor(new Color(255,0,0);/使用Color对象对于GUI的组件,可用与颜色有关的下列方法分别设置和获取组件的背景色和前景色:public void setBackground(Color c);public Color getBackground();public void setFor

35、eground(Color c);public Color getForeground();若需要颜色的分量值,可用Graphics类的方法getColor()或Color类的如下方法:public int getRed();public int getGreen();public int getBlue();,【例8.6】绘制有颜色的字符串。import;import java.awt.*;public class ColorString extends JApplet private int red,green,blue;private float rf,gf,bf;private int

36、 ci;String str;public void init()red=200;green=20;blue=200;rf=0.6f;gf=0.4f;bf=0.2f;ci=0 x00ff0000;/设置为红色 str=Hello,Java Programmer.;,public void paint(Graphics g)Color c=new Color(red,green,blue);g.setColor(c);g.drawString(str,30,30);showStatus(当前颜色:+g.getColor();g.setColor(new Color(rf,gf,bf);g.dra

37、wString(str,30,50);g.setColor(new Color(ci);g.drawString(str,30,70);,例8.6运行结果如下图:,8.3.4 绘制图形Java语言的类Graphics包含各种绘图方法,用于绘制直线、矩形、多边形、圆和椭圆等图形和进行简单的图形处理。绘图时,总假设坐标原点在图的左上角,坐标为(0,0)。沿X轴水平向右方向为正方向。沿Y轴垂直向下为正方向,度量单位为像素点个数。绘图都是用Graphics类的对象来完成的。在Applet中,Graphics对象自动产生,并作为参数传送给update()或paint()方法。1.写字符串public v

38、oid drawString(string str,int x,int y)在基线(x,y)坐标处写字符串str。,public void drawChars(char data,int offset,int length,int x,int y)在基线(x,y)坐标处写开始偏移为offset、长度length的字符数组data内容。public void drawBytes(byte data,int offset,int length,int x,int y)在基线(x,y)坐标处写开始偏移为offset、长度length的字节数组data内容。2.画直线drawLine(x1,y1,x2

39、,y2)从点(x1,y1)到(x2,y2)画一条直线。3.画矩形drawRect(x,y,width,height)以(x,y)为原点,即矩形的左上角,画宽为width,高为height的矩形。fillRect(x,y,width,height)画实心的矩形,参数同上。,drawRoundRect(x,y,width,height,x,y)画圆角矩形。前四个参数与上面的drawRect()方法参数相同,x和y指明了正好包含角的圆弧的矩形的宽和高。fillRoundRect(x,y,width,height,x,y)画实心的圆角矩形,参数同上。public void draw3DRect(int

40、 x,int y,int width,int height,boolean raised)画立体感矩形。前四个参数同drawRect()方法。boolean取值为true或false,表明该矩形是从平面突起的还是凹陷的。fill3Drect(x,y,width,height,boolean)画实心的立体感矩形。参数同上。4.画椭圆public abstract void drawOval(int x,int y,int width,int height)画以(x,y)为原点,即矩形的左上角,宽为width,高为height的矩形的内切椭圆。,fillOval(x,y,width,height)

41、画实心的椭圆,参数同上。5.画圆弧public abstract void drawArc(int x,int y,int width,int height,int startAngle,int arcAngle)考虑以(x,y)为原点,宽为width,高为height的矩形内切椭圆。画它上面从startAngle角度开始,掠过sweepAngle角度的线段。fillArc(x,y,width,height,startAngle,arcAngle)实心,参数同上。6.画多边形public abstract void drawPolygon(int xPoints,int yPoints,int

42、 nPoints)xPoint和yPoint是两个数组,分别定义多边形顶点的x坐标和y坐标。nPoint为顶点个数。,fillPolygon(xPoint,yPoint,nPoint)实心的,参数同上。7.限定作图区域public abstract void clipRect(int x,int y,int width,int height)这四个参数划定了一个矩形区,使得所有的绘图操作只能在这个矩形区域内起作用。超出范围则无效。【例8.7】绘制各种图形。import java.awt.*;import;public class DrawFigures extends JApplet publ

43、ic void paint(Graphics g)g.drawLine(30,5,40,150);g.drawRect(40,10,50,20);,g.fillRect(60,30,70,40);g.drawRoundRect(110,10,130,50,30,30);g.drawOval(150,120,70,40);g.fillOval(190,160,50,40);g.drawOval(90,100,50,40);g.fillOval(130,100,50,40);drawMyPolygon(g);g.drawString(这些图形由Graphics类的方法绘出。,40,220);pub

44、lic void drawMyPolygon(Graphics g)int x=30,50,65,110,120;int y=100,140,120,170,200;g.drawPolygon(x,y,5);,例8.7的运行结果如下图:,8.4 Applet的通信,8.4.1 同页Applet间的通信嵌入在同一HTML文件中的Applet程序(同页)可以通过java.applet包中提供的接口、类方法进行通信。有用的接口为Applet环境上下文接口AppletContext,在该接口中定义了如下的方法:public Applet getApplet(String name)查找和返回由Appl

45、et上下文指明的HTML文档中具有指定name的的Applet,name用HTML标记中name属性设置,是一个Applet字节码文件的名字。,public Enumeration getApplets()查找由Applet上下文指明的文档中所有的Applet。它返回的是枚举Enumeration对象,该对象枚举了页中所有的Applets,这时可通过接口Enumeration提供的方法hasMoreElements()和nextElement()来获得同页中所有的Applet对象。public boolean hasMoreElements()测试该枚举对象是否包含更多的元素。public O

46、bject nextElement()返回该枚举对象的下一个元素。若无更多的元素存在,则抛出异常“NoSuchElementException”。【例8.8】使用getApplet()方法获取同页Applet信息,显示获得的Applet类名。import java.awt.*;import javax.swing.*;,public class GetAppletDemo extends JApplet JApplet ap;public void paint(Graphics g)ap=(JApplet)getAppletContext().getApplet(绘图);g.drawStrin

47、g(-+ap.getClass().getName(),30,30);为运行这个Applet,编写一个HTML文件如下:,将本例的Applet和HTML文件中指明的另一个Applet类文件存放到HTML文件所在目录,用appletviewer运行HTML文件,就可见到两个Applet运行窗口,其中本程序的Applet运行窗口中即显示了另一个Applet的类名。运行显示情况如下图所示。,【例8.9】使用getApplets()方法获取同页所有Applet信息,显示获得的Applet类名。import java.awt.*;import javax.swing.*;import java.util

48、.Enumeration;public class GetAppletsDemo extends Japplet JApplet ap;public void paint(Graphics g)int i=0;Enumeration e=getAppletContext().getApplets();while(e.hasMoreElements()ap=(JApplet)e.nextElement();i=i+20;g.drawString(-+ap.getClass().getName(),30,i);,例8.9运行结果如下图:,8.4.2 Applet与浏览器之间的通信在Applet类中

49、提供了多种方法,使之可以与浏览器进行通信。前面介绍的Applet从HTML文件获得参数,实际上也是一种与浏览器之间的通信。下面再介绍一些Applet类中与浏览器通信的方法。public URL getCodeBase()得到Applet自身的URL地址。URL的概念在下一节中介绍。public URL getDocumentBase()返回嵌入Applet的HTML文档的绝对URL地址。例如,设Applet包含在下述文档中:则HTML文档的URL地址为:,public String getParameterInfo()返回本Applet参数的信息,返回值为字符串数组,它的每个元素是包含三个字符

50、串的一维数组,三个字符串分别为名称、类型和描述。public String getAppletInfo()返回本Applet的作者、版本、版权等信息。【例8.10】使用getCodeBase()和getDocumentBase()方法来获得Applet程序所在路径和HTML文档名。import java.awt.*;import java.applet.*;import.*;public class Bases extends Applet public void paint(Graphics g)String msg;,URL url=getCodeBase();msg=Code base:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号