实例004 绘制椭圆
实例说明
本实例演示如何在Java中绘制椭圆。运行程序,将在窗体上绘制椭圆,效果如图1.4所示。
关键技术
本实例主要是通过在JPanel类的子类中,重写JComponent类的paint()方法,并在该方法中使用Graphics类的drawOval()和fillOval()方法来实现的。
(1)使用Graphics类的drawOval()方法绘制的椭圆,只有线条而没有填充色,该方法的定义如下:
public abstract void drawOval(int x, int y, int width, int height)
参数说明
? x:要绘制椭圆的左上角的x坐标。
? y:要绘制椭圆的左上角的y坐标。
? width:要绘制椭圆的宽度。
x height:要绘制椭圆的高度。
(2)使用Graphics类的fillOval()方法可绘制带填充色的椭圆,该方法的定义如下:
public abstract void fillOval(int x, int y, int width, int height)
参数说明
? x:要填充椭圆的左上角的x坐标。
? y:要填充椭圆的左上角的y坐标。
? width:要填充椭圆的宽度。
x height:要填充椭圆的高度。
设计过程
(1)新建一个项目。
(2)在项目中创建一个继承JFrame类的DrawEllipseFrame窗体类。
(3)在DrawEllipseFrame窗体类中,创建内部面板类DrawEllipsePanel,并重写JComponent类的paint()方法,在该方法中使用Graphics类的drawOval()和fillOval()方法绘制椭圆。
(4)将内部面板类DrawEllipsePanel的实例,添加到窗体类DrawEllipseFrame的内容面板上,用于在窗体上显示绘制的椭圆,代码如下:
class DrawEllipsePanel extends JPanel { // 创建内部面板类
public void paint(Graphics g) { // 重写paint()方法
g.drawOval(30, 20, 80, 50); // 绘制空心椭圆
g.drawOval(150, 10, 50, 80); // 绘制空心椭圆
g.fillOval(40, 90, 50, 80); // 绘制实心椭圆
g.fillOval(140, 110, 80, 50); // 绘制实心椭圆
}
}
秘笈心法
心法领悟004:通过Graphics类的drawOval()和fillOval()方法可以绘制圆形。
在绘制椭圆时,如果将drawOval()或fillOval()方法的后两个参数设置为相同的值,就可以绘制出圆形或填充的圆形。