下面我们先上代码:
package 一个事例图形小应用程序;
import javax.swing.JApplet;
import java.awt.Graphics; public class 绘制图形 extends JApplet{
public void paint(Graphics canvas){
canvas.drawOval(100,50,200,200);
canvas.fillOval(155, 100, 10, 20);
canvas.fillOval(230,100,10,20);
canvas.drawArc(150, 160, 100, 50, 180, 180);
}
}
首先它和其它所有的小应用程序一样使用了Swing库(包)中的类JApplet
同时,它也使用了来自AWT库的类Graphics。除了Swing库中的类之外,小应用程序经常使用AWT库中的类。
下一个语句行pubilc class HappyFace extends JApplet
以用于该小应用程序的类定义开始,它被命名为HappyFace。单词extends JApplet指明我们正在定义一个小程序(继承),而不是其它类型的类。
这个小应用程序包含一个方法——paint,其定义下述语句开始:
public void paint(Graphics canvas)
paint方法指定在这个小应用程序中绘制什么图形。当小应用程序运行时paint方法被自动的调用。
现在先解释一下:
canvas.drawOval(100,50,200,200);
是用来构成脸部图形的。前两个数字说明圆绘制在屏幕上的什么位置。后两个数字是用来绘制椭圆的长轴和短轴的长度。这些数字的单位是用像素进行定义的。
canvas.fillOval(155, 100, 10, 20);
canvas.fillOval(230,100,10,20);
这两句话是用来绘制眼睛的。fillOver的意思是调用了一个填充了的椭圆。
最后一句当然是用来绘制嘴巴的。
在这里简单解释一下绘制椭圆和圆的一些基本知识:
canvas.drawOval(100,50,90,50)绘制的,前两个数字是坐标,后两个数字是长短半轴。也就是drawOval和fillOver两个方法。
绘制弧形:canvas.drawArc(150,160,100,50,180,180);
前两个参数给定不可见的矩形的位置。这个矩形左上角在点(150,160)上。下两个参数指定矩形的大小:该矩形的宽度为100,高度为50.再组个不可见的矩形内部,想象一个与不可见矩形拥有相同宽度和高度的不可见椭圆。后两个参数指定这个不可见椭圆的可见部分。
drawArc的倒数第二个参数指定了起始角度,以度为单位。最后一个参数指定椭圆的弧线将持续多少度是可见的。椭圆水平线最右端的端点为0度。随着你以反时针方向移动椭圆边缘,度数逐渐增大。起始角度即为开始的角度,而后面的参数+-代表的是方向,数值代表的是弧长对应的度数。