当前位置:文档之家› 《Java程序设计实例教程》 第7章 绘图与图像

《Java程序设计实例教程》 第7章 绘图与图像


解释
依据两端的坐标(x1,y1),(x2,y2)绘制直线 依据左上角坐标(x,y)宽度width高度height绘制矩形 清除左上角坐标(x,y)宽度width高度height决定的矩形
public abstract void fillRect(int x,int 依据左上角坐标(x,y)宽度width高度height绘制填充矩 y,int width,int height) 形 矩形 public abstract void drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight) public abstract void fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight) public void draw3DRect(int x,int y,int width,int height,boolean raised) public void fill3DRect(int x,int y,int width,int height,boolean raised) 依据左上角坐标(x,y)宽度width高度height绘制圆角矩 形,圆角的大小由参数arcWidth和 arcHeight决定 依据左上角坐标(x,y)宽度width高度height绘制填充的 圆角矩形,圆角的大小由参数arcWidth和 arcHeight决定 依据左上角坐标(x,y)宽度width高度height绘制立体矩 形,参数raised决定矩形是凸的还是凹的 依据左上角坐标(x,y)宽度width高度height绘制立体的 填充矩形,参数raised决定矩形是凸的还是凹的
表7-2 画布类Canvas常用方法
常用方法
public void paint(Graphics g) public void repaint() 由 Component 类继承来 public void setBackground(Color c)
解释
Canvas类的自动绘图方法 调用paint(Graphics g) 设置画布的背景色
表7-1 画布类Canvas的构造方法
构造方法
解释
public Canvas()
创建一个画布

7.1 Java绘图基础
7.1.3 paint方法和repaint方法
Canvas类最重要的方法是paint方法,一般在画布上绘图时总是要重写 paint方法。另一个重要的方法是repaint方法,repaint与paint不同, paint方法是由系统自动调用的,而repaint方法必须由程序显式地调用。 有一点需要注意的是,创建一个画布对象后必须用public void setSize(int width, int height) 方法设置画布的大小,否则画布是看不 见的。表7-2列出了画布类Canvas的常用方法。
public void setSize(int width,
int height) 设置画布的大小
7.1 Java绘图基础
本书中绘图程序主要以Applet为容器。以下分别给出以 Canvas为容器和以Applet为容器的绘图实例,用以示范两种不同 方式的绘图方法。 实例 实例 在Canvas上绘图 在Applet上绘图
7.1 Java绘图基础
7.1.2 画布类Canvas 画布就是屏幕上的一个用于绘图的空白矩形区域,程序不仅 可以在画布上绘图,也可以捕获画布上的事件,例如鼠标事件和 键盘事件等。在对于Java Application程序,画布Canvas是主要 的绘图容器,画布类Canvas是组件类Component的子类,是一种比 较简单的类,表7-1给出了Canvas类最常用的构造方法。
本章学习目标
本章介绍使用Java绘图和在Java中使用图像的方法。学习的 主要目标是: •了解绘图容器与坐标系的概念。 •掌握Canvas类、Graphics类的基本用法,掌握在组件上绘图 的基本步骤,掌握使用Graphics类绘图、绘制字符、显示图 片。 •掌握绘制任意函数曲线的编程方法,理解徒手绘图和橡皮筋 画法的基本思路,理解使用连续位图形成动画的思路的编程 方法。
7.1 Java绘图基础
7.1.1 绘图容器与坐标系 Java的绘图是在容器上进行的,每一 个容器都有一个默认的坐标系,该坐标系 以容器的左上角为坐标原点(0,0),X轴 水平向右,Y轴竖直向下,长度单位为像素, 如图7-1所示。注意Y轴的默认方向与解析 几何学中设置坐标系的习惯是不同的。 图7-1 默认的坐标系 虽然在各种组件上都能绘图,但是常用的绘图容器只用两种。 如果是Java Application程序,通常使用的是画布Canvas作为绘 图容器。如果是Applet程序,通常使用的就是Applet作为绘图容 器,因为Applet本身就是一种容器。
7.1 Java绘图基础
7.1.4 绘图类Graphics
Graphics类是一个比较特殊的抽象类,无须通过new实例化直接可 以使用。使用Graphics类绘图要依附于一个组件,常用的是Applet和 Canvas,程序运行时系统都会自动地调用二者的paint()方法完成绘图 工作。 如果声明的类是组件类Component的子类,可以通过重写 paint(Graphics g)方法,并利用Graphics的g对象进行绘图,这是大多 数的情况。如果声明的类不是组件类Component的子类,就没有 paint(Graphics g)方法供系统自动调用,这时必须使用getGraphics() 方法获取一个Graphics对象,然后利用这个对象绘图。 Graphics类提供了几十个绘图方法,可以完成绝大多数的绘图工作, 表7-3给出了常用的绘图方法。由于Graphics类特殊性,一般不使用其 构造方法来创建实例对象,所以以下只介绍用于绘图的实例方法。
7.1 Java绘图基础
表7-3 绘图类Graphics的常用方法
分类
直线
常用方法
public abstract void drawLine(int x1,int y1,int x2,int y2) public void drawRect(int x,int y,int width,int height) public abstract void clearRect(int x,int y,int width,int height)
相关主题