简单图形绘制

简单图形绘制

Graphics是java.awt提供的一个绘画类。构造方法只有一个Graphics():

Graphics 是一个抽象类,所以应用程序不能直接调用此构造方法。图形上下文从其他图形上下文获取,或者通过在组件上调用getGraphics 来创建。

public void paint(Graphics g){...}

1.绘制直线

g.drawLine(x1, y1, x2, y2);   

x1, y1为起点, x2, y2为终点

2.绘制矩形

g.drawRect(x, y, width, height);

x, y为起点,width宽,height

g.fillRect(x, y, width, height);

x, y为起点,width宽,height,并填充矩形。

g.drawRoundRect(x, y, width, height, arcWidth, arcHeight);

x, y为起点,width宽,height,图形当前颜色绘制圆角矩形的边框

g.fillRoundRect(x, y, width, height, arcWidth, arcHeight);

x, y为起点,width宽,height,图形当前颜色绘制圆角矩形的边框和当前颜色填充圆角矩形。

g.draw3DRect(x, y, width, height, raised);

g.fill3DRect(x, y, width, height, raised);

 绘制一个用当前颜色填充的 3-D 高亮显示矩形。true表示上凸,false表示下凹。

3.绘制圆形和椭圆

 绘制椭圆的边框,当width等于 height的时候为圆。

g.drawOval(x, y, width, height);

x, y为圆心,width为水平方向的宽,height为y轴方向的高

g.fillOval(x, y, width, height));

x, y为圆心,width为水平方向的宽,height为y轴方向的高,并用当前颜色填充椭圆。

4.绘制圆弧和扇形

width等于 height的时候为圆

g.drawArc(x, y, width, height, startAngle, arcAngle);

x, y为圆心,width为水平方向的宽,height为y轴方向的高。起始角度和结束角度。

g.fillArc(x, y, width, height, startAngle, arcAngle);

同上,并填充当前颜色。

5.绘制多边形

g.drawPolygon(xPoints, yPoints, nPoints);

<span style="font-size:14px;">int[] xpoint={50,60,90,120,150};
int[] ypoint={130,40,95,120,50};
g.drawPolyline(xpoint, ypoint, 5);</span>

nPoints表示几个点。定义的是一系列连接线

g.drawPolygon(xPoints, yPoints, nPoints);

定义的闭合多边形。

g.drawPolygon(p);

绘制由指定的 Polygon 对象定义的多边形边框

6.设置当前颜色

<span style="font-size:14px;">Color c=g.getColor();//获取系统颜色
g.setColor(c.cyan);//设置当前颜色
</span>

7.图形文字显示

img=getImage(URL url,String name);//加载image对象

img=getImage(URL url);//加载image对象

g.drawImage(img, x, y, observer);//显示图片,不修改大小

具体看帮助文档


import java.applet.Applet;
import java.awt.*;

public class DrawImg extends Applet{
	int flag=0;
	Panel p=new Panel();
	Button line=new Button("直线");
	Button oval=new Button("画圆");
	Button rect=new Button("矩形");
	Button polygon=new Button("多边形");
	Button arc=new Button("扇形");
	int[] xpoint={50,60,90,120,150};
	int[] ypoint={130,40,95,120,50};
	
	public void init(){
		p.add(line);p.add(oval);p.add(rect);p.add(polygon);p.add(arc);
		add(p);
		p.setSize(400, 300);
		p.setVisible(true);
	}
	public boolean action(Event e,Object o){
		if(e.target==line) flag=1;
		if(e.target==oval) flag=2;
		if(e.target==rect) flag=3;
		if(e.target==polygon) flag=4;
		if(e.target==arc) flag=5;
		repaint();
		return true;
	}
	public void paint(Graphics g){
		Color c=g.getColor();
		switch(flag){
		case 1:
			g.drawLine(50, 50, 100, 100);
			break;
		case 2:
			g.setColor(c.blue);
			g.fillOval(50, 50, 50, 30);
			g.drawOval(50, 50, 60, 40);
			break;
		case 3:
			g.drawRect(20, 80, 40, 30);
			g.fillRect(80, 80, 40, 60);
			g.drawRoundRect(150, 80, 80, 60, 10, 20);
			g.fillRoundRect(170, 90, 40, 40, 10, 20);
			g.setColor(c.cyan);
			break;
		case 4:
			g.drawPolyline(xpoint, ypoint, 5);
			break;
		case 5:
			g.drawArc(30, 50, 100, 120, 0, 45);
			g.fillArc(120, 80, 150, 100, 45, 90);
			break;
		}
	}
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值