java Canvas画图学习小结

主函数

  package paint;
    
    import javax.swing.JFrame;
    
    public class PaintMain {
    	JFrame jFrame;
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		PaintMain paintMain=new PaintMain();
    		paintMain.initView();
    	}
    
    	public void initView()
    	{
    		jFrame =new JFrame();
    		jFrame.setBounds(500, 500, 500, 500);
    		jFrame.setLayout(null);
    	
    		MyCanvas myCanvas=new MyCanvas();//画布
    		myCanvas.setBounds(0,0, 500, 500);
    		jFrame.add(myCanvas);
    		jFrame.setVisible(true);
    	}
    }

画图子类

package paint;

import java.awt.Canvas;
import java.awt.Graphics;

public class MyCanvas extends Canvas{
	@Override
	public void paint(Graphics g) {
		// TODO 自动生成的方法存根
		super.paint(g);//直接输入paint提示出来函数;
		g.drawRect(0, 0, 50 ,50);//矩形 rectangle 
		g.fillRect(0, 50, 50, 50);
		g.drawOval(50, 0, 50, 50);//圆,oval 与椭圆一致,不过圆的宽高一致,特殊椭圆  oval
		g.fillOval(50, 50, 50, 50);//填充,后面为度数
		g.drawRoundRect(100, 0, 50, 50, 10, 10);//圆角矩形 round(V A P 圆形,整数,环绕) rect
		g.fillRoundRect(100, 50, 50, 50, 10, 10);
		int X[]= {150,175,200};
		int Y[]= {50,0,50};
		int X1[]= {150,175,200};
		int Y1[]= {100,50,100};
		g.drawPolygon(X,Y, 3);// 任意多边形  polygon(多边形)   点点相连,三个变量,前两个为数组变量,分别是点的x坐标数组,y的坐标数组,最后一个为点的个数;
		g.fillPolygon(X1, Y1, 3);
		g.drawOval(200, 0, 100, 50);//椭圆
		g.fillOval(200, 50, 100, 50);
		int X2[]= {300,325,375,350};
		int Y2[]= {0,50,50,0};
		int Y3[]= {50,100,100,50};
		g.drawPolygon(X2, Y2, 4);//平行四边形, 注意drawPolygon在使用时,是按顺序连接点的
		g.fillPolygon(X2, Y3, 4);
		g.drawArc(400, 0, 50, 50, 0, 180);//扇形
		g.fillArc(400, 50, 50, 50, 0, 180);
		g.drawString("好好学习", 0, 150);// 注意,字符串型的x,y在字符中,而不是左上顶点;
		char []a= {'好','好','学','习'};
		g.drawChars(a, 0, 4, 50, 150);// data数组,offset为数据初始偏移量,length为要绘制的字符数,x,y文本基线的xy坐标,
		g.drawLine(100,150, 200, 150);//x1,y1,x2,y2 连线,
		g.drawString("软件1701 郝极平", 0, 200);
		g.drawString("学号2017011525", 100, 200);
	}
}
Java中的Canvas绘图源码实例,主要是画线条、弧线、圆角矩形、三角形、文字、圆形等简单的几何图形,主要是通过创建DrawingCanvas对象canvas,为canvas设置命令监听者,实现接口CommandListener的方法,把缓冲区图像的内容绘制到画布上,画图部分代码:   int w = getWidth(); // 画布的宽度   int h = getHeight(); // 画布的高度   Image buffer = Image.createImage(w, h); // 用于绘图的缓冲图像   Graphics gc = buffer.getGraphics(); // 获取缓冲图像的图形环境   // 清除画布   public void clearScreen() {    gc.setColor(255,255,255); // 设置绘图颜色为白色    gc.fillRect(0,0,w,h); // 把缓冲图像填充为白色    gc.setColor(255,0,0); // 设置绘图颜色为红色   }   // 绘制直线   public void drawLine() {    setTitle("直线"); // 设置画布的标题    clearScreen(); // 清除画布    gc.drawLine(10,10,w-20,h-20); // 绘制黑色直线    gc.setColor(0,0,255); // 设置绘图颜色为蓝色    gc.drawLine(10,h/2,w-10,h/2); // 绘制蓝色直线   }   // 绘制弧   public void drawArc() {    setTitle("弧线和填充弧");    clearScreen();    gc.drawArc(5,5,w/2-20,h/2-20,60,216); // 绘制弧线    gc.drawArc(5,h/2-10,w/2-20,h/2-20,0,360); // 绘制圆    gc.setColor(0,0,255);    gc.fillArc(w/2,5,w/2-20,h/2-20,60,216); // 绘制填充弧线    gc.fillArc(w/2,h/2-10,w/2-20,h/2-20,0,360); // 绘制填充圆   }   // 绘制矩形   public void drawRect() {    setTitle("矩形和填充矩形");    clearScreen();    gc.drawRect(25,25,w/2-30,h/2-30); // 绘制矩形    gc.fillRect(w/2 25,25,w/2-30,h/2-30); // 绘制填充矩形   }   // 绘制圆角矩形   public void drawRoundRect() {    setTitle("圆角矩形和填充圆角矩形");    clearScreen();    gc.drawRoundRect(5,5,w-5-30,h/2-30,20,20); // 绘制圆角矩形    gc.setColor(0,0,255);    gc.fillRoundRect(5,h/2,w-30,h/2-30,20,20); // 绘制填充圆角矩形   }   // 绘制三角形   public void drawTriangle() {    setTitle("填充三角形");    clearScreen();    gc.fillTriangle(w/2, h/6, w/6, h/2, w/2, h/2);   }   // 绘制文字   public void drawText() {    setTitle("文字"); //设置标题    clearScreen();    gc.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_SMALL)); // 设置字体    gc.drawString("Hello World!",0,0,gc.TOP|gc.LEFT); // 使用当前字体绘制文字    gc.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD|Font.STYLE_UNDERLINED,Font.SIZE_LARGE));    gc.drawString("Hello
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值