1、 画直线

void drawLine(int startX,int startY,int endX,int endY);

四个参数分别为:起始点的x坐标和y坐标以及终点的x坐标和y坐标,该方法用于在起点(startX,startY)和终点(endX,endY)之间画一条直线。

//DrawLine.java

import java.awt.*;

import java.applet.*;

 

public class DrawLine extends Applet

{

       public void paint(Graphics g)

       {

              //从点(0,0)到点(400,400)之间画直线

              g.drawLine(0,0,400,400);

              //从点(0,400)到点(400,0)之间画直线

              g.drawLine(0,400,400,0);

       }          

}

2、 画矩形

JAVA提供了三种画矩形的方式:

1)  直角矩形

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

绘制一个左上角坐标为(x,y),宽为width,高为height的直角矩形。

void fillRect(int x,int y,int width,int height);

绘制一个左上角坐标为(x,y),宽为width,高为height的有填充效果的直角矩形。

//DrawRect.java

//这个例子用于说明如何画矩形

import java.awt.*;

import java.applet.*;

public class DrawRect extends Applet

{

       public void paint(Graphics g)

       {

              g.drawRect(20,20,100,160);

              g.fillRect(200,20,100,160);

       }          

}

2)  圆角矩形

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

绘制一个左上角坐标为(x,y),宽为width,高为height,在x轴方向上圆边半径为arcWidth,在y轴方向上圆边半径为arcHeight的圆角矩形。

void fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight);

绘制一个左上角坐标为(x,y),宽为width,高为height,在x轴方向上圆边半径为arcWidth,在y轴方向上圆边半径为arcHeight的,有填充效果的圆角矩形。

//DrawRoundRect.java

//这个例子用于说明如何画圆角矩形

import java.awt.*;

import java.applet.*;

 

public class DrawRoundRect extends Applet

{

       public void paint(Graphics g)

       {

              g.drawRoundRect(20,20,100,160,20,20);

              g.fillRoundRect(200,20,100,160,20,20);

       }          

}

3)  阴影三维矩形

//Draw3DRect.java

//这个例子用于说明如何画三维矩形

import java.awt.*;

import java.applet.*;

 

public class Draw3DRect extends Applet

{

       public void paint(Graphics g)

       {

              //设置亮灰色颜色,主要是3D效果在此颜色比较清楚地看出来

              g.setColor(Color.lightGray);

              g.draw3DRect(20,20,100,160,true);

              g.draw3DRect(200,20,100,160,false);

       }

}

3、 画圆和椭圆

void drawOval(int x,int y,int width,int height);

void fillOval(int x,int y,int width,int height);

上述两种方法在坐标为(x,y)处,绘制或者填充一个长轴为width,短轴为height的椭圆。当长轴width与短轴height相等时,椭圆就变成了圆,所以JAVA并没有专门提供绘制圆的方法。

//DrawEllipse.java

//画椭圆和圆

import java.awt.*;

import java.applet.*;

public class DrawEllipse extends Applet

{

       public void paint(Graphics g)

       {

              //在原点为(10,10),半径为50画圆

              g.drawOval(10,10,50,50);

              //在原点为(100,10),半径为50画填充效果的圆

              g.fillOval(100,10,50,50);

              //在原点为(190,10),长轴为75,短轴为50画的椭圆

              g.drawOval(190,10,90,30);

              //在原点为(70,90),长轴为140,短轴为100画填充效果的椭圆

              g.fillOval(70,90,140,100);          

       }

}

4、 画弧

void drawArc(int x,int y,int width,int height,int startAngle,int endAngle);

void fillArc(int x,int y,int width,int height,int startAngle,int endAngle);

弧的绘制方法有6个参数:起始x坐标和y坐标,边界椭圆的长和宽,开始画弧的角度startAngle和终止画弧前扫过的角度endAngle。前4个参数确定了弧的尺寸和形状,后2个参数确定弧的端点(起止角度),其值为正表示逆时针方向,为负表示顺时针方向。

//DrawArc.java

import java.awt.*;

import java.applet.*;

public class DrawArc extends Applet

{

       public void paint(Graphics g)

       {

              //在原点为(10,40),半径为70,起始角度为0度,逆时针转90度的圆弧

              g.drawArc(10,40,70,70,0,90);

              //在原点为(100,40),半径为70,起始角度为0度,逆时针转90度的圆弧

              g.fillArc(100,40,70,70,0,90);

//在原点为(10,100),长轴为80,短轴为70,起始角度为0度,顺时针转90度的//弧

              g.drawArc(10,100,70,80,0,-90);

//在原点为(100,100),长轴为80,短轴为70,起始角度为0度,顺时针转90度的//填充弧

              g.fillArc(100,100,70,80,0,-90);

            

       }

}

5、 画多边形

多边形是不限边数的图形,而这些边实际上是由一组点连接而成的,所以绘制多边形需要一组x,y坐标对。绘图的原理是从第一个x,y坐标对开始,向第二坐标对画一条直线,然后向第三个x,y坐标对画一条直线,依次类推,可以画出多边形。下面有四个方法绘制和填充多边形:

void drawPloygon(int []xPoints,int []yPoints,int numPoints);

void drawPloygon(Polygon polygon);

void fillPloygon(int []xPoints,int []yPoints,int numPoints);

void filldrawPloygon(Polygon polygon);

xPoints代表x坐标的整形数组,yPoints代表y坐标的整形数组,numPoints代表所有点数的整数,当然,x数组和y数组应该具有相同数目的元素。通过规定Polygon对象或者x,y数组值来设置多边形的点。如果起始点和终点不重合,上述的绘图方法将自动将多边形封闭。如果希望绘制一系列相连的直线,不需要自动封闭图形,我们可以使用drawPolyLine()方法。

//DrawPolygon.java

import java.awt.*;

import java.applet.*;

public class DrawPolygon extends Applet

{

       public void paint(Graphics g)

       {

              int xArr[] = { 78,188,194,284,106,116,52 };

              int yArr[] = { 66,148,72,140,216,160,212 };

            

              //获得x,y坐标对数组的长度

              int numPoints=xArr.length;

            

              g.drawPolygon( xArr, yArr, numPoints);

       }

}

6、 文本控制

JAVA的Graphics类不但提供了几何图形的绘制,还提供了对绘制字符、文本的支持,为了在屏幕上显示文本,首先需要创建字体Font对象。

Font对象代表单独的字体,包含字体名称、风格和点数量。字体的名称是代表字体集合的字符串,例如TimesRoman等字体;字体风格是Font类定义的静态常量:Font.PLAIN,Font.BOLD和Font.ITALIC;点数量代表字体本身定义的尺寸。创建字体Font对象需要向Font类的构造函数传递三个参数:

Font f=new Font(“Timesroman”,Font.BOLD,24);

Font f=new Font(“Timesroman”,Font.BOLD+ Font.ITALIC,24);

程序指定的字体取决于系统所安装的字体库,如果系统中没有我么指定的字体的话,JAVA会用默认的字体(通常是Courier字体)来代替。我们可以利用定义在java.awt.ToolKit类中提供的getFontList() 方法得到当前系统中可用字体库的列表。

//DrawText.java

import java.awt.*;

import java.applet.*;

public class DrawText extends Applet

{

       public void paint(Graphics g)

       {

              //创建四个字体对象

              Font f1=new Font("TimesRoman",Font.PLAIN,18);

              Font f2=new Font("TimesRoman",Font.BOLD, 20);

              Font f3=new Font("TimesRoman",Font.ITALIC, 22);

              Font f4=new Font("TimesRoman",Font.BOLD + Font.ITALIC, 24);

              //用f1字体绘制字符串

              g.setFont(f1);

              g.drawString("This is a plain font",10,25);

              //用f2字体绘制字符串

              g.setFont(f2);

              g.drawString("This is a Bold font", 10,50);

              //用f3字体绘制字符串

              g.setFont(f3);

              g.drawString("This is a italic font", 10,75);

       //用f4字体绘制字符串

              g.setFont(f4);

              g.drawString("This is a Bold and italic font", 10,100);      

       }

}

7、 颜色

RGB颜色和Color类中定义的颜色

///DrawColor.java

import java.awt.*;

import java.applet.*;

 

public class DrawColor extends Applet

{

       public void paint(Graphics g)

       {

              //采用系统默认的颜色(黑色)

              g.drawString("This is a default color",10,10);

            

              //设置红色的前景色

              g.setColor(Color.red);

              g.drawString("This is red color",10,40);

            

              //设置绿色的前景色

              g.setColor(Color.green);

              g.drawString("This is greencolor",10,80);

              g.drawRect(10,100,50,80);

       }

}

8、 简单图像的绘制

例程15-10

//绘制简单图像

//DrawImage.java

import java.awt.*;

import java.applet.*;

public class DrawImage extends Applet

{

       Image img;

       //Applet的初始化方法

       public void init()

       {

              //从当前HTML文件所在的目录装载图像

              img = getImage(getDocumentBase(),"cow.gif");

       }

     

       public void paint(Graphics g)

       {

              int w=img.getWidth(this);

              int h=img.getHeight(this);

              g.drawImage(img,20,10,this); //原图

              g.drawImage(img,350,10,w/2,h/2,this); //缩小一半

              g.drawImage(img,20,200,w*2,h/3,this); //宽扁图

              g.drawImage(img,20,250,w/2,h*2,this); //瘦高图

       }

}

Graphics类绘制图形的更多相关文章

  1. C# winform如何清除由Graphics类绘制出来的所有线条或图形

    在C#winform应用程序中,可以用GDI绘制出线条或图形. 1.在主窗体上绘制线条或图形 using (Graphics g = this.CreateGraphics())      {    ...

  2. 十一. 图形、图像与多媒体4.Graphics类的绘图方法

    Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力.本节讲解Graphics类,下节讲解Graphics2D. Graphics类提供基本的几何图形绘制方法,主要有:画线段 ...

  3. android Graphics类:概述及基本几何图形绘制

    当须要在Android上绘制图形时.就会用到Graphics类.Paint类.Paint就是相当于笔,而Canvas就是 纸.这里叫画布. 所以,凡有跟要要画的东西的设置相关的.比方大小,粗细,画笔颜 ...

  4. java 基础二 Graphics类

    一.处理图形 1.画直线 void drawLine (int startx , int starty , int endx , int endy) 参数列表:直线开始的横坐标.纵坐标,直线结束的横坐 ...

  5. C# Graphics类详解

    转自于:http://blog.163.com/gis_warrior/blog/static/19361717320119227034181/ Brush 类.NET Framework 4定义用于 ...

  6. C# GDI+之Graphics类 z

    GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像.数学仿真等. Graphics类是GDI+的核心, ...

  7. C# GDI+编程之Graphics类

    GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像.数学仿真等. Graphics类是GDI+的核心, ...

  8. Java知多少(98)Graphics类的绘图方法

    Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力.本节讲解Graphics类,下节讲解Graphics2D. Graphics类提供基本的几何图形绘制方法,主要有:画线段 ...

  9. 【转】C# Graphics类详解

    Brush 类 .NET Framework 4 定义用于填充图形形状(如矩形.椭圆.饼形.多边形和封闭路径)的内部的对象. 属于命名空间:  System.Drawing 这是一个抽象基类,不能进行 ...

随机推荐

  1. Hay Points

    Hay Points TimeLimit: 1 Second   MemoryLimit: 32 Megabyte Totalsubmit: 1022   Accepted: 602 Descript ...

  2. 编译Hadoop源码

    背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Ma ...

  3. WE-1202 (JGX-X5 v1.3)刷openwrt

    当前固件版本显示 固件版本 RippleOS硬件型号 RippleTek WE-1202CPU型号是 MT7620N路由主板上面丝印是 JGX-X5  v1.3 买的时候选择的RippleOS固件,后 ...

  4. Bash For Loop Examples

    How do I use bash for loop to repeat certain task under Linux / UNIX operating system? How do I set ...

  5. How to Validate XML using Java

    Configure Java APIs (SAX, DOM, dom4j, XOM) using JAXP 1.3 to validate XML Documents with DTD and Sch ...

  6. Eclipse非常有用的快捷键

    Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率. 小坦克我花了一整天时间, 精选了一些常用的快捷键操作,并且精心录制了动画, 让你一看就会. ...

  7. WDCP是什么 关于WDCP的详细介绍

    WDCP是WDlinux Control Panel的简称,是一套用PHP开发的Linux服务器管理系统以及虚拟主机管理系统,,旨在易于使用Linux系统做为我们的网站服务器,以及平时对Linux服务 ...

  8. 关于T-SQL重编译那点事,WITH RECOMPILE和OPTION(RECOMPILE)区别仅仅是存储过程级重编译和SQL语句级重编译吗

    本文出处:http://www.cnblogs.com/wy123/p/6262800.html   在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的 ...

  9. 2014年到期的myeclipse5.5.1注冊码

    假设点击Myeclipse的载入项目到server的图标没有反应,这就是MyEclipse过期了,下面是还能用一年的注冊码: subscriber: axin  Serial:nLR8ZC-85557 ...

  10. 使用OpenXML将Excel内容读取到DataTable中

    前言:前面的几篇文章简单的介绍了如何使用OpenXML创建Excel文档.由于在平时的工作中需要经常使用到Excel的读写操作,简单的介绍下使用 OpenXML读取Excel中得数据.当然使用Open ...