Graphics常见操作

import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; public class GraphicsDraw extends JFrame{ public GraphicsDraw(){ add("Center",new MyCanvas2()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500,300); setVisible(true); } public static void main(String[] args) { GraphicsDraw f = new GraphicsDraw(); } /** * 参数: * x - 要填充矩形的 x 坐标。 * y - 要填充矩形的 y 坐标。 * width - 要填充矩形的宽度。 * height - 要填充矩形的高度。 * arcWidth - 4 个角弧度的水平直径。 * arcHeight - 4 个角弧度的垂直直径。 */ class MyCanvas2 extends Canvas{ public void paint(Graphics g){ g.drawRect(10,10,60,50); g.fillRect(100, 10, 60, 50);//填充指定图形 g.drawRoundRect(190, 10, 60, 50, 15, 15);//用此图形上下文的当前颜色绘制圆角矩形的边框。 g.fillRoundRect(70, 90, 140, 100, 30, 40);//用当前颜色填充指定的圆角矩形。 g.setColor(Color.yellow); g.fill3DRect(5, 65, 50, 75, true);//绘制一个用当前颜色填充的 3-D 高亮显示矩形。 //raised - 一个用于确定矩形是凸出平面显示还是凹入平面显示的 boolean 值。 g.setColor(Color.blue); g.drawOval(280, 20, 50, 50);//绘制椭圆的边框。 g.fillOval(360, 20, 75, 75); g.drawArc(180, 90, 70, 70, 0, 75);//绘制一个覆盖指定矩形的圆弧或椭圆弧边框。 g.fillArc(280, 90, 70, 70, 0, 75); g.drawArc(10, 100, 70, 80, 0, 175); g.fillArc(100, 100, 70, 90, 0, 270); g.drawArc(200, 80, 80, 80, 0, 180); //绘制一个由 x 和 y 坐标数组定义的闭合多边形。每对 (x, y) 坐标定义一个点。 /** * 参数:xPoints - x 坐标数组。yPoints - y 坐标数组。nPoints - 点的总数。 */ int[] x = new int[]{100,200,300,400}; int[] y = new int[]{400,300,200,100}; g.drawPolygon(x,y,x.length); } } }


import java.awt.Canvas; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import javax.swing.JFrame; public class Draw2DObjects extends JFrame{ Shape shapes[] = new Shape[5];//shape:形状 //Shape 接口提供了表示一些几何形状的对象的定义。 public static void main(String[] args) { Draw2DObjects app = new Draw2DObjects(); } public Draw2DObjects(){ add("Center",new MyCanvas1()); //Line2D 表示 (x,y) 坐标空间中的线段。 shapes[0] = new Line2D.Double(0.0,0.0,100.0,100.0);//根据指定坐标构造并初始化 Line2D。 //Rectangle2D 类描述通过位置 (x,y) 和尺寸 (w x h) 定义的矩形。 shapes[1] = new Rectangle2D.Double(10.0,100.0,200.0,200.0);//定义一个在 double 坐标中指定的矩形。 //Ellipse2D 类描述窗体矩形定义的椭圆。 shapes[2] = new Ellipse2D.Double(20.0,200.0,100.0,100.0);//根据指定坐标构造和初始化 Ellipse2D。 //GeneralPath 类表示根据直线、二次曲线和三次 (Bézier) 曲线构造的几何路径。General:将军、一般 //GeneralPath 是一个遗留的 final 类,它精确地实现了其超类 Path2D.Float 的行为。 GeneralPath path = new GeneralPath(); /** * append方法:将指定 PathIterator 对象的几何形状添加到路径中 * 参数: * pi - 其几何形状将被添加到此路径的 PathIterator * connect - 一个 boolean 值,用于控制是否将初始 moveTo 段转换为 lineTo 段,从而将新几何形状连接到现有路径 */ path.append(new Line2D.Double(25.0,175.0,300.0,100.0), true); shapes[3] = path; //RoundRectangle2D 类定义一个矩形,该矩形具有由位置 (x,y)、维度 (w x h) 以及圆角弧的宽度和高度定义的圆角。 shapes[4] = new RoundRectangle2D.Double(350.0,250.0,200.0,100.0,50.0,25.0); setSize(400, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } //Canvas 组件表示屏幕上一个空白矩形区域,应用程序可以在该区域内绘图,或者可以从该区域捕获用户的输入事件。 class MyCanvas1 extends Canvas{ public void paint(Graphics g){ Graphics2D g2d = (Graphics2D)g;//把此画笔转成Graphics2D for(int i = 0; i < shapes.length; i++){ if(shapes[i] != null){ g2d.draw(shapes[i]); } } } } }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值