JAVA基础教程————绘图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java实用教程
图5.3 颜色测试界面
Java实用教程
5.5 Graphics2D类
Graphics2D类继承于Graphics类,提供几何学、坐标变换、 颜色管理以及文本排列等的更高级控制。Graphics2D类是Java平 台上渲染二维图形、文字、以及图片的基础类,提供较好的对绘 制形状、填充形状、旋转形状、绘制文本、绘制图像以及定义颜 色的支持。
正常显示;当alpha分量为0时,表示完全透明,前三个分量不
起作用,而介于0~255之间的值可以制造出颜色不同的层次效 果。
Java实用教程
【例5.2】测试Color对象,界面如图5.3所示。源程序代码如下:
//程序文件名UseColor.java import java.awt.*; import java.applet.*; import java.awt.geom.*; public class UseColor extends Applet {
分为两个层次:一是处理原始图形,这一层较原始,图形直接 以点、线和面的形式画到界面上;二是提供大量组件,实现可 定制的图形用户界面。本章主要讨论如何在界面上画图形及所 画图形的特征。Java编程语言中的图形坐标系统不同于数学中的 坐标系,屏幕左上角为(0,0),右下角为屏幕水平向右和垂直向 下增长的像素数。
//输出字符串 g.drawString("图形显示",100,30);
//设置颜色
Color c = new Color(255,200,0); g.setColor(c); //设置字体
Java实用教程 Font f = new Font("TimesRoman",Font.BOLD+ Font.ITALIC,24); g.setFont(f);
Java实用教程 public void drawRect(int x, int y, int width, int height) 画矩形。 public void drawRect(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。
Java实用教程
5.2 Paint方法、Update方法和Repaint方法
1. Paint方法 public void paint(Graphics g) 以画布为参数,在画布上执行画图方法。在Applet中,不显 式地调用paint方法。
2. Repaint方法
Applet重画时系统自动调用paint方法。 3. Update方法 public void update(Graphics g) 更新容器,向Repaint发出刷新小应用程序的信号,缺省的 Update方法清除Applet画图区并调用Paint方法。
使用当前颜色,在点(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坐标定义的多边形。
图5.2 裁剪后的图形界面
Java实用教程
5.4 Color类
Color类是用来封装颜色的,在上面的例子中多次用到。使 用Color对象较为简单的方法是直接使用Color类提供的预定义的 颜色,像红色Color.red、橙色Color.orange等;也可以使用RGB
颜色模式进行定义。所谓RGB颜色模式是指使用三种基色:红、
Java实用教程 【例5.1】设置Graphics对象画图,显示结果如图5.1所示。源 程序代码如下: //程序文件名SimpleGUI.java
import java.awt.*;
import java.applet.*; public class SimpleGUI extends Applet { Image samImage;
Java实用教程 Color还有一个构造函数,它构造的Color对象用于是否透 明显示颜色。 public Color(int red, int green, int blue, int alpha) 其中:前三个分量即RGB颜色模式中的参数,第四个alpha 分量指透明的程度。当alpha分量为255时,表示完全不透明,
绿、蓝,通过三种颜色的调整得出其它各种颜色,这三种基色 的值范围为0~255。例如Color c = new Color(255,200,0);定义橙 色。表5.1给出常用颜色的RGB值以及对应的类预定义参数。
Java实用教程 表5.1 常用颜色的RGB值以及对应的类预定义参数
颜色名 白色 浅灰色 灰色 深灰色 黑色 红色 粉红色 橙色 黄色 绿色 品红色 深蓝色 蓝色 预定义颜色值 Color.white Color.lightGray Color.gray Color.darkGray Color.black Color.red Color.pink Color.orange Color.yellow Color.green Color.magenta Color.cyan Color.blue 红色值 255 192 128 64 0 255 255 255 255 0 255 0 0 绿色值 255 192 128 64 0 0 175 200 255 255 0 255 0 蓝色值 255 192 128 64 0 0 175 0 0 0 255 255 255
Java实用教程 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)
g.draw3DRect(80,80,40,40,true);
Java实用教程 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);
public void paint(Graphics oldg)
{ Graphics2D g = (Graphics2D)oldg;
Java实用教程
g.setColor(Color.blue);
g.fill(new Ellipse2D.Float(50,50,150,150)); g.setColor(new Color(255,0,0,0)); g.fill(new Ellipse2D.Float(50,50,140,140)); g.setColor(new Color(255,0,0,64)); g.fill(new Ellipse2D.Float(50,50,130,130)); g.setColor(new Color(255,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)); } }
Graphics类提供画各种图形的方法,其中包括线、圆和椭圆、矩
形和多边形、图像以及各种字体的文本等。这些方法具体如下: public abstract void clipRect(int x, int y, int width, int height) 指定的区域切分。
Java实用教程
public abstract void drawLine(int x1, int y1, int x2, int y2)
g.setColor(Color.blue);
//圆角矩形
g.drawRoundRect(180,180,40,40,20,20); g.fillRoundRect(200,200,40,40,20,20);
Java实用教程 //多边形 int xC[] = {242,260,254,297,242};
Java实用教程
通过指定的name、style和size创建字体实例。name指字体
名,像“隶书”、“TimesRoman”等,字体风格为粗体、斜体, size指字号大小。 例如: Font f = new Font("TimesRoman",Font.BOLD + Font.ITALIC, 12); 创建了具有粗斜体风格的12磅的TimesRoman字体。
int yC[] = {240,243,290,300,270};
g.drawPolygon(xC,yC,5); //图片 g.drawImage(samImage,250,50,this); }
}
Java实用教程
图5.1 简单的图形界面
Java实用教程 将例5.1注释的程序语句 // g.clipRect(50,50,180,180); 的注释符号去掉,重新编译执行,可以看见如图5.2所示的结果。
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矩形
Java实用教程
Java绘图
5.1 Java图形 5.2 Paint方法、Update方法和Repaint方法 5.3 Graphics类
5.4 Color类
5.5 Graphics2D类 习 题
Java实用教程
5.1 Java图形பைடு நூலகம்
抽象窗口化工具(AWT)为图形用户界面编程提供API编程接
口,使得Java可以提供较好的图形用户界面。AWT把图形处理
Java实用教程
5.3 Graphics类
Graphics类是所有图形上下文的抽象基类,允许应用程序在 各种设备上实现组件的画图。图形对象封装了Java支持的基本渲 染操作的状态信息,包括画图的组件对象、渲染区域的坐标 (coordinates)、区域(clip)、颜色(color)、字体(font)、画图模式等。
public void init()
{ samImage=getImage(getDocumentBase(),"sample.gif");
Java实用教程 } public void paint(Graphics g) { //g.clipRect(50,50,180,180); //画线
g.drawLine(0,0,20,30);