谈谈java.awt.Graphics类(一)

图形环境的概念同在 GUI 平台上开发应用程序紧密相关。虽然通常将窗口和组件本身作为对象来表达,但仍然需要另一个接口来执行实际的绘制、着色以及文本输出操作。Java 语言中提供这些功能的基类称作 java.awt.Graphics。从 java.awt.Component 类(所有窗口对象的基类)继承的类提供了一个名为 paint() 的方法,在需要重新绘制组件时,调用该方法。 paint() 方法只有一个参数,该参数是 Graphics 类的实例。 Graphics 类支持几种确定图形环境状态的特性。以下列出了部分特性: 1.Color:当前绘制颜色,它属于 java.awt.Color 类型。所有的绘制、着色和纯文本输出都将以指定的颜色显示。 2.Font:当前字体,它属于 java.awt.Font 类型。它是将用于所有纯文本输出的字体。 3.Clip:java.awt.Shape 类型的对象,它充当用来定义几何形状的接口。该特性包含的形状定义了图形环境的区域,绘制将作用于该区域。通常情况下,这一形状与整个图形环境相同,但也并不一定如此。 4.ClipBounds:java.awt.Rectangle 对象,它表示将包围由 Clip 特性定义的 Shape 的最小矩形。它是只读特性。 5.FontMetrics:java.awt.FontMetrics 类型的只读特性。该对象含有关于图形环境中当前起作用的 Font 的信息。 6.Paint Mode:该特性控制环境使用当前颜色的方式。如果调用了 setPaintMode() 方法,那么所有绘制操作都将使用当前颜色。如果调用了 setXORMode() 方法(该方法获取一个 Color 类型的参数),那么就用指定的颜色对像素做“XOR”操作。XOR 具有在重新绘制时恢复初始位模式的特性,因此它被用作橡皮擦除和动画操作。 Graphics 类方法: 可以将 java.awt.Graphics 支持的非特性方法划分为三个常规类别之下: 1.跟踪形状轮廓的绘制方法: draw3DRect() drawArc() drawBytes() drawChars() drawImage() drawLine() drawOval() drawPolygon() drawPolyline() drawRect() drawRoundRect() drawString() 2.填充形状轮廓的绘制方法: fill3DRect() fillArc() fillOval() fillPolygon() fillRect() fillRoundRect() 3.诸如 translate() 之类的杂项方法,它们将图形环境的起点从其缺省值 (0,0) 变成其它值。 请注意,没有对任意形状进行操作的操作。直到 Java 2D 出现以前,图形操作一直都是很有局限性的。还需注意的是,对于渲染具有属性的文本也没有直接支持;显示格式化文本是一项费事的任务,需要手工完成。 下面我们来看一些具体的实例(注:所有的实例都没有加上关闭窗口的事件驱动,只能用Ctrl+C来中断程序): 1.画线程序: import java.awt.*; import java.awt.event.*; import java.util.*; class Main extends Frame { Vector points = new Vector(); int lastDrawnPoint = 0; Main() { super("drawLine Example"); setSize(200, 200); addMouseListener(new MouseEventHandler()); addMouseMotionListener(new MouseMotionEventHandler()); show(); } public void paint(Graphics g) { Point curPt = null; for (int i=0; i"); } } } 相比较上面的程序,这个程式就简单的多,它就是调用你本地的图片,进行多角度显示。java.awt.Frame.getToolkit().getImage(filename)和Graphics.drawImage()是重要的方法。 3。画圆程式: import java.awt.*; import java.util.*; import java.io.*; class Main extends Frame { Vector points = new Vector(); Main() { super("drawOval Example"); setSize(200, 200); show(); } void addPoint(Point p) { points.addElement(p); repaint(); } public void paint(Graphics g) { Insets insets = getInsets(); int x = insets.left, y = insets.top; for (int i=0; i
 

99.00 元  

DOROTHY去印平坑明星!第二代积雪草细胞再生霜-填平坑

 

¥:48.00 

纤体·丽颜New Concept茶坊 纯天然美容瘦身品位花饮

超级瘦腿!(迷迭香柠檬马鞭草)袋泡瘦腿茶 1月量2盒 包快递哦!


来源:程序员网

小小豆叮

0 Responses to "谈谈java.awt.Graphics类(一)"

发表评论