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、付费专栏及课程。

余额充值