实验8-Applet编程

发布时间 : 星期四 文章实验8-Applet编程更新完毕开始阅读

实验8 Applet编程

8.1 实验目的

(1)熟悉Applet的生命周期及其方法执行特点;

(2)掌握Applet图形绘制方法,如何控制图形输出时的坐标位置变化。 (3)掌握Applet参数传递; (4)熟悉字体和颜色的控制方法;

(5)了解Applet图像显示和声音播放方法。了解双缓冲区的应用,改进图像显示效果。

8.2 知识要点

8.2.1 Applet程序的执行特点

(1) 在HTML页面中运行

(2) Applet作为一个对象,是由浏览器的JVM自动创建并自动按如下顺序执行其方法。

init()?start()?paint(g)

8.2.2 Applet 方法

Applet的常用方法见表10-1,Applet在其生命周期的各阶段将自动调用相应方法,用户可根据需要在方法内安排特定的处理代码。

表10-1 Applet的常用方法

方法名 init() start() paint(g) update(g) repaint() stop() destroy() 安排初始化处理 安排启动Applet时所要做的工作 在 Applet的界面中绘制文字、图形等 实现Applet画面的刷新,默认清除画面后调paint(g) 重新绘制,它将调用update(g) 安排停止Applet前所要做的工作 安排浏览器关闭,Applet退出前所要做的工作 描述 8.2.3 Applet的图形绘制

借助Applet 的“画笔”(Graphics)对象可调用表10-2所示的方法实现各类图形的绘制。在paint方法执行时,Applet将自动将自己的“画笔”通过参数传递给方法,在其它情形下,也可以通过由父类Component继承而来的getGraphics()方法得到“画笔”。

表10-2 Graphics对象的常用图形绘制方法

方法名 描述 drawString(String s, int x,int y); drawLine(int x1, int y1, int x2, int y2) drawRect(int x, int y, int width, int height) drawOval(int x, int y, int width, int height) 绘制文字 绘制直线 绘制矩形 绘制椭圆 drawPolygon(int[] xPoints, int[] yPoints, int nPoints) 绘制多边形 drawArc(int x, int y, int width, int height, 绘制圆弧 int startAngle, int arcAngle) drawRoundRect(int x, int y, int width, int height, int 绘制园角矩形 arcWidth, int arcHeight) fillOval(int x, int y, int width, int height) fillRect(int x, int y, int width, int height) 绘制填充椭圆 绘制填充矩形 fillRoundRect(int x, int y, int width, int height, int 绘制填充园角arcWidth, int arcHeight) 矩形 fillArc(int x, int y, int width, int height, int 绘制填充扇形 startAngle, int arcAngle) 8.2.4 控制颜色和字体

Color包含红、绿、蓝的组合,构造方法为:

public Color(int Red, int Green, int Blue) 每个参数的取值范围在0~255之间 。

Color类提供了一些常用颜色常量,如:Color.red代表红色。 定义字体对象用如下方法:

Font myFont = new Font(\宋体\

其中,第1个参数为字体名,第3个参数为字体大小。第2个参数为代表风格的常量,Font类中定义了3个常量:Font.PLAIN,Font.ITALIC,Font.BOLD分别表示普通、斜体和粗体。

借助表10-3所示的方法可设置画笔或部件使用的字体和颜色。

表10-3 设置颜色和字体 方法名 void setColor(Color c) Color getColor() void setFont(Font c) Font getFont() void setBackground(Color c) void setForeground(Color c) 描述 设置画笔颜色 读取画笔颜色 设置画笔或部件字体 读取当前使用字体 设置部件的背景颜色 设置部件的前景颜色 8.2.5 Applet的参数传递

为了增强Applet程序的通用性,Applet允许从HTML标记中获取参数,程序运行时,不同参数值将导致不同的运行结果。

? 通过HTML标记中的标记给它所嵌入的 Applet程序传递参数。

? 在Applet程序中利用 getParamter(\参数名\方法获取 HTML传递的参数值,结

果为字符串类型。

8.3 样例程序

样例1:绘制可变大小的杨辉三角形 1 1 1 1 2 1 1 3 3 1

注:行数有Applet参数决定,范围3~8的一个值。 【参考程序】

import java.applet.*; import java.awt.*;

public class Yanghui extends Applet { int rows;

public static long fac(int n) { long res=1;

for (int k=2;k<=n;k++) res=res*k; return res; }

public static long com(int n,int m) { return fac(n)/(fac(n-m)*fac(m)); }

public void init(){

rows=Integer.parseInt(getParameter(\

}

public void paint(Graphics g) { int x,y=10;

for (int n=0;n<=rows;n++) { x=10;

for (int m=0;m<=n;m++) {

g.drawString(\ x=x+40; } y=y+20; } } } HTML程序

【说明】本例的难点是如何控制绘制坐标的变化,同一行的输出只要改变x坐标,不同行的则改变y坐标。 【编程技巧】

(1) 如何利用二重循环控制输出坐标的变化 (2) 如何从Applet参数接收一个整数

样例2: 编制一个程序绘制如图10-1所示的棋盘。

【参考程序】

import java.awt.*; import java.applet.*;

联系合同范文客服:xxxxx#qq.com(#替换为@)