1、绘制直线、矩形、椭圆等图形的两种代码
(1)常用代码
g.drawLine(70, 50, 180, 50); g.drawRect(30, 40, 80, 60); g.drawOval(30, 20, 80, 50);
(2)另外一种代码
Graphics2D g2 = (Graphics2D)g; // 获得Graphics2D对象 Line2D.Float line = new Line2D.Float(50,50,240,50);// 创建直线对象 g2.drawString("平头样式", 120, 40); // 绘制文本 g2.draw(line);// 绘制直线 Rectangle2D.Float rect = new Rectangle2D.Float(20,60,80,50);// 创建矩形对象 g2.draw(rect);// 绘制矩形 Ellipse2D.Float ellipse=new Ellipse2D.Float(30, 20, 80, 50);//创建椭圆对象 g2.draw(ellipse);//绘制椭圆
2、绘制多边形
int[] x1 = { 100,120,180,140,150,100,50,60,20,80 }; // 多边形的横坐标 int[] y1 = { 20,85,90,120,180,140,180,120,90,85 }; // 多边形的纵坐标 int n1 = 10;// 多边形的边数 g.fillPolygon(x1, y1, n1);// 绘制多边形
3、绘制二次曲线
//强制转型为2D对象 Graphics2D g2=(Graphics2D)g; //创建二次曲线,其中点120,40是控制点,点60,120是起始点坐标,点180,120是终点坐标 QuadCurve2D.Double quadCurve2 = new QuadCurve2D.Double(60,120,120,40,180,120); g2.draw(quadCurve2); // 绘制二次曲线
4、绘制三次曲线
Graphics2D g2=(Graphics2D)g;// 获得Graphics2D对象 // 创建三次曲线,其中点140,-140和点140,300是控制点,点20,80是起始点坐标,点260,80是终点坐标 CubicCurve2D.Double cubicCurve = new CubicCurve2D.Double(20,80,140,-140,140,300,260,80); g2.draw(cubicCurve); // 绘制三次曲线
5、绘制文本
String value = "静夜思"; int x = 120; // 文本位置的横坐标 int y = 30; // 文本位置的纵坐标 g.drawString(value, x, y); // 绘制文本
6、设置字体
Font font1 = new Font("华文行楷", Font.BOLD + Font.ITALIC, 26); // 创建字体对象 g.setFont(font1); // 设置字体
7、设置粗细
Graphics2D g2 = (Graphics2D)g; // 获得Graphics2D对象 BasicStroke stroke = new BasicStroke(1); // 创建宽度是1的笔画对象 g2.setStroke(stroke);// 设置笔画对象
8、设置笔画样式
Graphics2D g2 = (Graphics2D)g; // 获得Graphics2D对象 BasicStroke stroke = new BasicStroke(10,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); // 创建宽度是10的平头笔画对象 g2.setStroke(stroke);// 设置笔画对象 Line2D.Float line = new Line2D.Float(50,50,240,50);// 创建直线对象 g2.drawString("平头样式", 120, 40); // 绘制文本 g2.draw(line);// 绘制直线 stroke = new BasicStroke(10,BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL); // 创建宽度是10的圆头笔画对象 g2.setStroke(stroke);// 设置笔画对象 line = new Line2D.Float(50,90,240,90);// 创建直线对象 g2.drawString("圆头样式", 120, 80); // 绘制文本 g2.draw(line);// 绘制直线 stroke = new BasicStroke(10,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_BEVEL); // 创建宽度是10的方头笔画对象 g2.setStroke(stroke);// 设置笔画对象 line = new Line2D.Float(50,130,240,130);// 创建直线对象 g2.drawString("方头样式", 120, 120); // 绘制文本 g2.draw(line);// 绘制直线
结果示意图:
Graphics2D g2 = (Graphics2D)g; // 获得Graphics2D对象 BasicStroke stroke = new BasicStroke(10,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); // 创建宽度是10的平头斜角连接笔画对象 g2.setStroke(stroke);// 设置笔画对象 Rectangle2D.Float rect = new Rectangle2D.Float(20,60,80,50);// 创建矩形对象 g2.drawString("斜角连接", 35, 50); // 绘制文本 g2.draw(rect);// 绘制矩形 stroke = new BasicStroke(10,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER); // 创建宽度是10的平头尖角连接笔画对象 g2.setStroke(stroke);// 设置笔画对象 rect = new Rectangle2D.Float(120,60,80,50);// 创建矩形对象 g2.drawString("尖角连接", 135, 50); // 绘制文本 g2.draw(rect);// 绘制矩形 stroke = new BasicStroke(10,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND); // 创建宽度是10的平头圆角连接笔画对象 g2.setStroke(stroke);// 设置笔画对象 rect = new Rectangle2D.Float(220,60,80,50);// 创建矩形对象 g2.drawString("圆角连接", 235, 50); // 绘制文本 g2.draw(rect);// 绘制矩形
结果示意图:
g2.scale(1.3, 1.3);// 放大1.3倍 g2.draw(rect);// 绘制矩形
11、旋转图形
g2.rotate(0.2);// 顺时针旋转 g2.draw(rect);// 绘制矩形
12、斜切图形
g2.shear(0.2,0.2);// 向下斜切 g2.draw(rect);// 绘制矩形
13、为图形填充渐变色
// 创建循环渐变的GraphientPaint对象 //x1 - 用户空间中第一个指定 Point 的 x 坐标 // y1 - 用户空间中第一个指定 Point 的 y 坐标 // color1 - 第一个指定 Point 处的 Color // x2 - 用户空间中第二个指定 Point 的 x 坐标 // y2 - 用户空间中第二个指定 Point 的 y 坐标 // color2 - 第二个指定 Point 处的 Color // cyclic - 如果渐变模式在两种颜色之间重复循环,则为 true;否则为 false。 GradientPaint paint = new GradientPaint(20,20,Color.BLUE,100,80,Color.RED,true); g2.setPaint(paint);// 设置渐变 g2.fill(rect);// 绘制矩形
结果示意图: