抽象窗口化工具(AWT)为图形用户界面提供了API编程接口,使得java可以提供较好的图形用户界面。AWT把图形处理分为两层:一是处理原始图形,直接以点线面的形式画到界面上;二是提供大量组件,实现可定制的图形用户界面。JAVA编程语言中的坐标系不同于数学中的坐标系,屏幕左上角为(0,0),右下角为屏幕水平向右和垂直向下增长的像素。

方法:

1:public void paint(Graphics g)

2:Repaint :Applet重画系统时自动调用paint方法。

3:Update方法 :public void Update(Graphics g)  更新容器,向Repaint发出刷新小应用程序的信号,缺省的Update方法清除Applet画图区并调用paint方法。

Graphics类

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 x1,int y1,int width,int height);            画椭圆
public  abstract   void fillOval(int x1,int y1,int width,int height);            画实心椭圆
public  abstract  void drawPolygon(int[] xPoints,int[] yPoints,int nPoints);   画x和y坐标定义的多边形
public abstract  void drawRect(int x1,int y1,int width,int height);       画矩形
public  abstract  void  fillOval(int x,int y,int width,int height);        画实心矩形
public  abstract  void drawRoundRect(int x1,int y1,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字体;      public Font(String name,int style,int size);
eg: Font f=new Font("TimesName", Font.BOLD+Font.ITALIC,12)
例子:
import java.awt.*;
import java.applet.*;
import java.geom.*;
public  class SimpleGUI extends Applet{
          Image samImage;
          public  void init(){
                       samImage=getImage(getDocumentBase(),"sample.gif");
                       }
         public  void paint(Graphics g){
                     g.clipRect(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("TimesRomn",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.fillRect(60,60,40,40);
                  g.setColor(Color.red);
                   //3D矩形
                  g.draw3DRect(80,80,40,40,true);
                   g.draw3DRect(120,120,40,40,true);
                  g.filll3DRect(120,210,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);
}
}

Color类

Color类是用来封装颜色的,使用Color类中较简单的方法就是使用Color提供的预定义颜色,红色:Color.red;橙色:Color.orange等。也可以使用RGB颜色模式进行定义,所谓的RGB 即为:red,green,blue三种颜色进行调合,三种基色的范围是:0~255;

常用的颜色RGB值以及对应的类预定义的参数:

白色:Color.white; (255,255,255)。浅灰色:Color.lightGray;(192,192,192)。灰色:Color.gray;(128,128,128)。深灰色:Color.drakGray;(64,64,64)。黑色:Color.drak;(0,0,0,)。

红色:Color.red;(255,0,0)。粉红色:Color.pink;(255,175,175)。橙色:Color.orange;(255,200,0)。黄色:Color.yellow;(255,255,0)。绿色:Color.green;(0,255,0)。品红色:Color.magenta;(255,0,255)。深蓝色:Color.cyan;(0,255,255)。蓝色:Color.blue;(0,0,255)。

Color还可以构造一个函数,public Color(int red,int green,int blue,int alpha);   alpha是指透明度,为255是完全不透明,可以正常显示;当alpha分量为0时,表示完全透明,前三个分量不起作用,而介于0~255之间的值可以制造出颜色不同的层次效果。

eg:

import java.awt.*;
      import java.applet.*;
      import java.awt.geom.*;
      public  class UseColor extends Applet{
                  public void paint(Graphics oldg){
                                Graphics2D g=(Graphics2D)oldg;
                                g.setColor(Color.blue);
                               g.fill(new Ellipse2D.Float(50,50,150,150));
                               g.setColor(new Color(255,0,0));
                               g.fill(new Ellipse2D.Float(50,50,140,140));
                               g.setColor(new Color(255,0,64));
                               g.fill(new Ellipse2D.Float(50,50,130,130));
                                g.setColor(new Color(155,0,0,128));
                               g.fill(new Ellipse2D.Float(50,50,110,110));
                                g.setColor(new Color(255,0,0,255));
                               g.fill(new Ellipse2D.Float(50,50,90,90));
                              g.setColor(new Color(255,200,0));
                               g.fill(new Ellipse2D.Float(50,50,70,70));
                         }
}