java.awt.Graphics
是一个抽象类,其作用是定义一个真正的工具,用来接受图形操作。在该类中,有47个公共方法,可以用作显示图像和文本、绘制和填充形状、剪贴图像操作等等。
在构件内部执行图像操作时,每个Graphics中都保持了下面的图形属性:
java.awt.*
中几乎所有的方法都传递一个对Graphics的引用:
包 | 类 | 方法 |
---|---|---|
java.awt | Canvas | print(Graphics g) |
Comonent | print(Graphics g) | |
Comonent | printAll(Graphics g) | |
Comonent | print(Graphics g) | |
Comonent | printAll(Graphics g) | |
Comonent | update(Graphics g) | |
Container | print(Graphics g) | |
Container | printComponents(Graphics g) | |
Container | print(Graphics g) | |
ScrollPane | printComponents(Graphics g) | |
Property-Editor | printComponents(Graphics g) | |
java.beans | Property-Editor | printValue(Graphics g, Rectangle r) |
Property-EditorSupport | printValue(Graphics g, Rectangle r) |
包 | 类 | 方法 |
---|---|---|
java.awt | Component | getGraphics() |
Image | getGraphics() | |
PrintJob | getGraphics() | |
Graphics | create() | |
Graphics | create(int x, int y, int w, int h) |
- 图像和打印工作也提供了一个getGraphics方法。通过在一个画面外的缓冲区中显示,Image.getGraphics ()经常用在双缓冲中
- 当调用create ()时,Graphics . create ()复制Graphics。在 create ()中,使用了四个参数来设置原点和剪贴矩形,作为新创建的副本。参数x和y是用来设置原点的。剪贴矩形是Graphics当前剪贴矩形和由传递给create ()的参数所定义的矩形的交集。
图形模式是一个只写属性,而字体度量是只读属性。
在Graphics类中,也提供获取和设置颜色、字体和剪贴矩形的方法
每个Graphics维护一个颜色,这个颜色可以用于下面给出的方法操作:
void setColor (Color color)
Color getColor ()
用来绘制文本的字体可以用下面的方法来规定和读取:
void setFont (Font f)
Font getFont ()
字体度量由java.awt.FontMetrics
类表示,在该类中,提供了一些关于字体的详细信息,例如字体的高度、倾斜度、行间距等。在Graphics类中,提供两种方法返回对FontMetrics
的引用。这两种方法如下:
FontMetrics getFontMetrics ()
FontMetrics getFontMetrics (Font f)
方法中的无参数方案(第一种方法)返回的字体度量,和Graphic当前的字体结合在一起。第二种方法返回的字体尺度和指定的字体结合在一起。尽管是非镶嵌方法,你同样可以通过设置特殊字体来间接地指定字体尺度。
每个Graphics 也维护一个剪贴矩形。图形操作一般在由Graphics的剪贴矩形指定的矩形中执行。其具体设置如下:
void setClip ( int x,int y,int w,int h)
Rectangle getClipBounds ()
void setClip (Shape)
Shape getClip ()
void clipRect (int x,int y,int w,int h)
剪贴矩形是通过四个整型参数或通过java.awt.Shape
来指定的,上面方法中的四个整型参数构成一个矩形的封闭框。第三个方法中的Shape接口是Java 2D API
的一部分,Shape所表示的形状可以是非矩形的,所以它可以为输出设备定义一个非矩形的剪贴矩形。
在上面所给出的方法中,最后一个方法的作用是计算一个新的剪贴矩形,该剪贴矩形是原先剪贴矩形和方法中参数指定的剪贴矩形的交集。在早期的 AWT版本中,Graphics.clipRect ()
是更改剪贴矩形的唯一方法。
关于绘图模式,提供下面两种设置绘图模式的方法:
void setPaintMode ()
void setXORMode ()
setPaintMode ()
设置paint图形模式,意味着后面的着色操作将改写现有的图形,setXOR-Mode ()允许绘制和擦掉现有图形而不干扰其下面的图形。Paint模式是图形模式的默认模式,而XOR模式在许多情形下是由手工设置的,例如在一-个绘图程序中使用橡皮带式或压条法生成图形。