第三十六节 java学习——Graphics类

来源:互联网 发布:gap淘宝旗舰店 编辑:程序博客网 时间:2024/04/29 17:28

Graphics类

              是所有图形上下文的抽象基类,允许应用程序在各种设备上实现组件的画图。图形对象封装了java支持的基本渲染操作的状态信息,包括画图的组件,渲染区域的坐标(coordinates),区域(clip),颜色(color),字体(font),画图模式等。Graphics类提供各种图形的方法,其中包括线,圆和椭圆,矩形和多边形,图像以及各种文体的文本等。

这些方法具体如下:

 public abstract void cliprect(int x,int y,int width,int height)

指定的区域切分。

 public abstract void drawline(int x1,int y1,int x2,int y2)使用当前颜色,在点(x1,y1)和(x2,y2)之间画线。

 public abstract void drawoval(int x,int y,int width,int height)

画椭圆。

 public abstract void filloval(int x,int y,int width,int height)

画实心椭圆。

 public abstract void drawPolygon(int[] xPoints,int[] yPoints,int nPoints)

画x和y坐标定义的多边形。

 public  void drawRect(int x,int y,int width,int height)

画矩形。

 public  void cliprect(int x,int y,int width,int height)

画实心矩形。

 public abstract void drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)

使用当前颜色画圆角矩形。

 public abstract void drawString(String str,int x,int y)

使用当前字体和颜色画字符串str,

 public abstract void setColor(Color c)

设置图形上下的当前颜色。

 public abstract void setPaintMode()

设置画模式。

 public abstract boolean drawImage(Image img,int x,int y,ImageObserver observer)

画特定图。

 public abstract void setFont(Font font)

设置特定的font字体。使用时首先得到font对象的一个实例,Font类常用构造函数为:

public Font(String name , int style,int size)

程序例子:

设置Graphics对象画图。

测试程序:

//程序文件为Test.java

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

 

public class Test extends Applet{
 Image samImage;
 public void init()
 {
  samImage = getImage(getDocumentBase(), "sampe.gif");
    }
 public void paint(Graphics g){
  g.clearRect(50, 50, 180, 180);
  //画线
  g.drawLine(0, 0, 20, 30);
  //输出字符串
  g.drawString("图形显示", 100, 30);
  //设置颜色
  Color c=new Color(255, 200, 0);
  g.setColor(c);
  //设置字体
  Font f=new Font("TimesRoman",Font.BOLD+Font.ITALIC,24);
  g.setFont(f);
  g.drawString("图形显示", 180, 30);
  g.drawLine(20, 20, 100, 50);
  g.drawLine(20, 20, 50, 100);
  //矩形
  g.drawRect(40, 40, 40, 40);
  g.drawRect(60, 60, 40, 40);
  g.setColor(Color.red);
  //3D矩形
  g.draw3DRect(80, 80, 40, 40, true);
  g.draw3DRect(100, 100, 40, 40,false);
  g.fill3DRect(120, 120, 40, 40, true);
  //椭圆
  g.drawOval(150, 150, 30, 40);
  g.fillOval(170, 170, 20, 20);
  g.setColor(Color.blue);
  //圆角矩形
  g.drawRoundRect(180, 180, 40, 40, 20, 20);
  g.fillRoundRect(200, 200, 40, 40, 20, 20);
  //多边形
  int xc[]={242,260,254,297,242};
  int yc[]={240,243,290,300,270};
  g.drawPolygon(xc, yc, 5);
  //图片
  g.drawImage(samImage, 250, 50, this);
 }
}