简单图形绘制
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; } } }