码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA---图形处理

时间:2017-08-24 14:57:52      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:字符   aws   font   ntb   date   作用   sam   界面   允许   

抽象窗口化工具(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));

                         }

}

 

JAVA---图形处理

标签:字符   aws   font   ntb   date   作用   sam   界面   允许   

原文地址:http://www.cnblogs.com/zhouzetian/p/7422782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!