绘制几何图形
《零基础学Java》
-
绘制几何图形
Java可以分别使用 Graphics 和 Graphics2D 绘制图形,Graphics类 使用不同的方法绘制不同的图形(drawLine()方法可f以绘制线、drawRect()方法用于绘制矩形、drawOval()方法用于绘制椭圆形)。
Graphics类常用的图形绘制方法:
Graphics2D类 继承 Graphics类,它包含 Graphics类 的绘图方法并增加了更强大的功能,在创建绘图类时推荐使用该类。Graphics2D类可以分别使用不同的类来表示不同的形状,如Line2D、Rcctangle2D等。
绘制指定形状的图形,先需要创建并初始化该图形类的对象,这些图形类必须是Shape接口的实现类,然后使用Graphics2D类的drav()方绘制该图形对象或者使用fill()方法填充该图形对象。
drav()、fill()语法:
drav(Shapae form);
fill(Shapae form); //填充
/**
* form是指实现Shape接口的对象.java.awt.gcom包中提供了如下一些常用的图形类,这些图形类都实现了Shape接口;
* Arc2D:存储所有2D弧度的对象的抽象超类,其中2D弧度由窗体矩形、起始角度、角跨越(弧的长度)和闭合类型(OPEN、CHORD或PIE)定义.
* CubicCurve2D:定义(x,y)坐标空间内的三次参数曲线段。
* Ellipse2D:描述窗体矩形定义的椭圆。
* Line2D:(x,y)坐标空间中的线段。
* Path2D:提供一个表示任意几何形状路径的简单而又灵活的形状。
* QuadCurve2D:定义(x,y)坐标空间内的二次参数曲线段。
* Rectangle2D:描述通过位置(x,y)和尺寸(w,x,h)定义的矩形。
* RoundRectangle2D:定义一个矩形,该矩形具有由位置(x,y)、尺寸(w,x,h)以及圆角弧的宽度和高度定义的圆角。
*/
绘制几何图形 实例:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
public class Demo extends JFrame {
public Demo(){
super();
init();
}
public void init(){
this.setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("绘制几何图形");
MyCabvas c = new MyCabvas(); //创建一个画布类的对象
add(c);
}
public static void main(String[] args) {
new Demo().setVisible(true);
}
private class MyCabvas extends Canvas{ //创建画布类
@Override
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g; //新绘图类
g2.drawOval(5,5,100,100); //画 圆形
g2.drawRect(15,15,80,80); //画 矩形
g2.fillRect(15,15,80,80); //画 矩形 填充式
// g2.drawArc(320,25,100,50,270,200); //画 弧形 (startAngle:开始角度、arcAngle:跨越角度)
g2.fillArc(320,25,100,50,270,200); //画 弧形 填充式 (startAngle:开始角度、arcAngle:跨越角度)
g2.drawLine(5,120,100,120); //画 直线 横
g2.drawLine(50,120,50,200); //画 直线 竖
// g2.drawRoundRect(120,120,100,50,10,10); //画 圆角矩形 (arcWidth:水平直径、arcHeight:弧度直径)
g2.fillRoundRect(120,120,100,50,10,10); //画 圆角矩形 填充式 (arcWidth:水平直径、arcHeight:弧度直径)
int x[] = {250,300,250,300};
int y[] = {130,130,200,200};
g2.drawPolygon(x,y,4); //画 多边形 (nPonts:有多少个点)
g2.fillPolygon(x,y,4); //画 多边形 填充式 (nPonts:有多少个点)
// g2.drawPolyline(x,y,4); //画 多边线
/*
图形对象
*/
Shape shape1 = new Rectangle2D.Double(110,5,100,100); //矩形图形对象
// g2.draw(shape1); //画 shape1 这个图形
g2.fill(shape1); //画 shape1 这个图形 填充式
Shape shape2 = new Ellipse2D.Double(220,15,80,80); //圆形图形对象
g2.draw(shape2);
}
}
}
绘制几何图形 实例 输出结果: