实验目的
(1) 掌握Java Applet程序的结构和运行机制
(2) 掌握Java Applet程序的生命周期中触发的各种事件
(3) 复习Java语言中类的继承与方法的重载机制
实验内容及要求
编写一个Applet程序,在窗体中分别绘制由’*’组成的正方形和圆,尽量保证’*’号之间的间距相等。如下图所示:
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
思考并验证
(1) 思考一个方法,验证Applet程序运行的生命周期中init、start、stop、destroy、paint几个方法被调用的时机。实现这个方法,并给出验证的结果。
(2) 思路:
(3) 谈一谈自己对Java Application程序与Applet程序之间区别的一些认识和看法。
View Code
package org.freeskyc.com;
/**
*
* @author FREESKYC
*/
import java.awt.*;
import java.applet.*;
class project12 extends Applet {
StringBuffer buffer = new StringBuffer();
@Override
public void init() {
}
@Override
public void start() {
addItem("程序启动");
}
@Override
public void stop() {
}
public void destory() {
}
void addItem(String s) {
System.out.println(s);
buffer.append(s);// 将字符串输出在java console中
repaint();
}
void CirclePoints(int x0, int y0, int x, int y, Graphics g) {
g.drawString("*", x + x0, y + y0);
g.drawString("*", y + x0, x + y0);
g.drawString("*", -x + x0, y + y0);
g.drawString("*", y + x0, -x + y0);
g.drawString("*", x + x0, -y + y0);
g.drawString("*", -y + x0, x + y0);
g.drawString("*", -x + x0, -y + y0);
g.drawString("*", -y + x0, -x + y0);
}
void Square(int m, int n, Graphics g) {
g.drawString("绘制由*组成的正方形", 100, 80);
//Square();
int i, j;
//int m,n;
int left; //正方形左边起始坐标
left = m;
m = n = 100;
for (i = 0; i < 5; i++)//用于绘制正方形的循环
{
for (j = 0; j < 5; j++) {
g.drawString("*", m, n);
m = m + 10;
}
n = n + 10;
m = left;
}
}
void MidPointCircle(int x0, int y0, int r, Graphics g) {
g.drawString("绘制有*组成的圆形", 300, 80);
int x, y;
float d;
x = 0;
y = r;
d = (float) (1.25 - r);
System.out.println("test" + d);
while (x <= y) {
if (d < 0) {
d = d + 2 * x + 3;
} else {
d = d + 2 * (x - y) + 5;
y = y - 2;
}
x = x + 2;
CirclePoints(x0, y0, x, y, g);
// System.out.println(x+x0+" "+y+y0);
}
}
@Override
public void paint(Graphics g) {
g.drawString(buffer.toString(), 5, 15);
Square(100, 100, g);
MidPointCircle(350, 150, 50, g);
}
}