Java大学实用教程 第13章 Java Applet
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
13.3 在网页向Java Applet传值
我们可以在超文本中使用若干个<Param…>标志把值传递到 Java Applet中,这样就实现了动态地向程序传递信息,不必重新 编译程序,便于程序的维护和使用。 例13-4 在网页向Java Applet传值 。
8
13.4 在Java Applet中使用组件
7.绘制多边形
drawPolygon(int xPoints[], int yPoints[], int nPoints)方法绘制多边形。 fillPolygon(int xPoints[], int yPoints[], int nPoints)方法填充多边形。 参数数组xPoint和yPoint组成多边形的顶点坐标,nPoints是顶点的数目。 注:Java自动闭合多边形,程序总是把最后的顶点和第一个顶点连接起来。
1
13.1 Java Applet的运行原理 _ 1 Java Applet概述
1.Java Applet概述 一个Java Applet也是由若干个类组成的,一个Java Applet不再 需要 main 方法,但必须有且只有一个类扩展了 Applet 类,即它是 Applet类的子类,我们把这个类称为这个Java Applet的主类。 Java Applet 的主类必须是 public 的。Applet 类是java.applet 包 提供的类, Applet 类是 Container 类的一个间接子类 ,因此 Java Applet的实例是一个容器。 Java Applet属于Java嵌入式开发的一种,嵌入式程序的主类的 实例化由嵌入该程序的环境平台中JVM负责。这样一来,我们必须 向这样的平台提供相应的配置文件,嵌入该程序的环境平台使用 配置文件通知平台中的JVM建立主类的对象,并产生相应的一些行 为。 Applet 类有 5 个常用的方法 , 它们是 init () , start() , stop() ,
2.绘制直线
drawLine(int x1,int y1,int x2,int y2)方法绘制从起点(x1,y1)到终点(x2,y2) 的直线段。
3.绘制矩形
drawRect (int x,int y,int w,int h)方法绘制矩形,fillRect (int x,int y,int w,int h)方法填充矩形。矩形的左上角的坐标由参数x和y指定,矩形的宽和高 由参数w和h指定。
6
13.2 Java Applet中播放声音
用Java可以编写播放AU、AIFF、WAV、MIDI、RM格式的音 频。AU格式是Java早期惟一支持的音频格式。要在Java Applet中 播放声音,可以使用Applet类的一个静态的方法(类方法):
newAudioClip(URL url,String name) 或Applet类的实例方法getAudioClip(Url url,String name)
11
图13.4
12
13.5 在Java Applet中绘制图形_2
6.绘制圆弧 圆弧就是某个椭圆的一部分。
drawArc(int x,int y,int width,int height,int starAngle, int arcAngle)方 法绘制圆弧。 fillArc(int x,int y,int width,int height,int starAngle,int arcAngle)方法 填充圆弧。 x 、y、width、heigth 指定椭圆的位置和大小 , 参数starAngle 和 arcAngle 的 单位都是“度”。而起始角度的0°是3点钟的方位。参数starAngle和arcAngle 表示从starAngle的角度开始逆时针或顺时针方向画arcAngle度的弧,当arcAngle 是正值时为逆时针 ,否则为顺时针。starAngle的值可以是负值 ,如-90°是6点钟 的方位。
第13章 Java Applet
本章导读
Java Applet的运行原理 在网页向Java Applet传值 在Java Applet中播放声音 在Java Applet中使用组件 在Java Applet中绘制图形图像 在Java Applet中播放幻灯片 Java Applet 网络聊天室
(2) Java Applet的生命周期
一个Java Applet的执行过程称为ຫໍສະໝຸດ Baidu个 Java Applet的生命周期。一个Java Applet 的 生 命 周 期 会 涉 及 如 下 方 法 的 调 用 执 行 init() , start() , stop() , destroy()和paint(Graphics g)。 当浏览器执行like.html,发现有applet标记时,浏览器内置的JVM将创建主 类 Example13_1 的 一 个 对 象 , 它 的 大 小 由 超 文 本 文 件 like.html 中 的 width 和 height来确定。由于Applet类也是Container的间接子类,因此主类的实例也是 一个容器,容器有相应的坐标系统,单位是像素,原点是容器的左上角。该容器 的默认布局是FlowLayout布局,被自动添加到浏览器的桌面上。 ◆浏览器内置的JVM创建了主类Boy对象后,立刻通知这个对象调用init()方法完 成必要的初始化工作。 ◆该对象接着自动调用start()方法。 ◆当浏览器离开Java Applet所在的页面转到其他页面时,主类创建的对象将调 用stop()方法。 ◆当浏览器结束浏览时,主类创建的对象自动执行 destroy() 方法,结束 Java Applet 的生命。 ◆ paint(Graphics g)方法可以使一个Java Applet在容器上显示某些信息,如 文字、色彩、背景或图像等。浏览器的Java运行环境产生一个Graphics类的实例, 并传递给方法paint中的参数g。 5
根据参数url提供的地址和该处的声音文件name,可以获得一个用 于播放的音频对象(AudioClip类型对象)。这个音频对象可以使 用下列方法来处理声音文件: ◆ play() 播放声音文件name。 ◆ loop() 循环播放name。 ◆ stop() 停止播放name。 例13-3 播放声音 。
<applet code=Example13_1.class height=180 width=300> </applet>
like.html文件告诉浏览器运行主类是Example13_1的Java Applet。 网页的最终目的是让其他客户通过网络来访问 ,下载到客户端 执 行 。 可 以 用 Web 发 布 管 理 器 , 比 如 ,IIS 或 Tomcat, 将 含 有 Java Applet网页所在的目录设成Web服务目录。例如,我们将like.html 所在的文件夹D:\ch13设为Web服务目录,虚拟目录名称是hello,那 么其他用户就可以在其浏览器的地址栏中键入该服务器的 IP地址、 虚 拟 目 录 名 称 访 问 含 有 Java Applet 的 网 页 , 如 http://192.168.0.100/hello/like.html。 Java Applet 的字节码文件会下载到客户端 , 由客户端的浏览 器负责运行。超文本文件 like.html 可以被看成是运行环境执行 Java Applet所要求的配置文件。 4
例13-7绘制了一些基本图形,效果如图13.5所示。
13
例13-7机制运行效果图13.5
14
13.6 在Java Applet中绘制图像
4.绘制圆角矩形
drawRoundRect(int x,int y,int w,int h,int arcW,int arcH)方法绘制圆角 矩形,fillRoundRect(int x,int y,int w,int h,int arcW,int arcH)方法填充 圆角矩形。参数arcW和arcH指定圆角的尺寸,见图13.4中的4个黑角部分。
例13-5,13-6 运行效果 图13.2,13.3
10
13.5 在Java Applet中绘制图形 _1
1.绘制文本
drawstring() 方法可以在屏幕上显示串对象。 drawString(String s,int x,int y)方法从参数x、y指定的坐标位置处,从左向 右绘制参数s指定的字符串。 drawChars(char data[],int offset, int length, int x, int y)方法绘制data 数组中的部分字符,length指定数组中要连续绘制的字符的个数 ,offset是首字符 在数组中的位置。
destroy()和paint(Graphics g)。
2
13.1 Java Applet的运行原理 _ 2 运行原理
2. 运行原理 例13-1说明Java Applet运行原理,效果如图13.1所示。
3
(1) 网页的编写
编写一个超文本文件,告诉浏览器来运行这个Java Applet。 假设 Applet 主类的名字是 Example13_1, 下面是一个简单的 html 文件“like.html”。
Applet类是容器的间接子类,因此我们可以在这个容器中添加 组件,处理组件事件,完成一些工作。如果没有更新浏览器内置的 JVM,Java Applet中只能使用JDK 1.1版本公布的java.awt包中的组 件,如Button,TextField,TextArea等。 例13-5中,我们把Java Applet的布局设置为BorderLayout布局, 效果如图13.2所示。Java Applet的中心和北面又分别嵌套了面板 (Panel创建的对象)centerPanel和northPanel。centerPanel面板 的布局是CardLayout布局、northPanel的布局是默认的FlowLayout 布局。在northPanel中添加了两个按钮,centerPanel面板中又嵌 套了两个不同的容器,作为centerPanel 中的“卡片”,单击相应的 按钮时,centerPanel面板将显示相应的“卡片”,两张卡片分别负责 计算圆和三角形的面积。 例13-6(效果如图13.3所示)在JApplet的内容面板的中心添 加了JTree组件,该组件用来显示日历。网页将年份传值给Japplet, 在内容面板的北面添加了两个按钮,两个按钮分别负责向前和向后 翻动月份;在内容面板的南面添加了1个标签,用来显示月份和年 份。该例子中用到了Calendar类的许多属性和功能。 9
13.1 Java Applet的运行原理 _ 3关于repaint()方法
和update(Graphics g) 3关于repaint()方法update(Graphics g) repaint()方法和update(Graphics g)是Component类中的一个 方法。当调用 repaint() 方法时,程序首先清除 paint() 方法以前所 画的内容,然后再调用paint()方法。 实 际 上 , 当 我 们 调 用 repaint() 方 法 时 , 程 序 自 动 去 调 用 update(Graphics g)方法,浏览器的Java运行环境产生一个Graphics 类的实例,传递给方法update(Graphics g)中的参数g。这个方法的 功能是清除paint()方法以前所画的内容,然后再调用paint()方法。 因此,我们可以在子类中重写update()方法(即隐藏父类的方法),根据需 要来清除哪些部分或保留哪些部分。 例 13-2 在 paint() 方法中使用了 repaint() 方法,因此每当 Java Applet 调用 paint() 方法时,就会调用 update() 方法。程序重写了 update()方法,清除paint()方法所绘制的部分内容,并紧接着再调 用paint()方法。