当前位置: 首页 > 工具软件 > G-Graphics > 使用案例 >

javaGUI学习4:AWT-Graphics介绍

封永嘉
2023-12-01

1、java.awt.Graphics

java.awt.Graphics是一个抽象类,其作用是定义一个真正的工具,用来接受图形操作。在该类中,有47个公共方法,可以用作显示图像和文本、绘制和填充形状、剪贴图像操作等等。

在构件内部执行图像操作时,每个Graphics中都保持了下面的图形属性:

  • 用来绘制和填充形状的颜色。
  • 用来描述文本的字体
  • 剪贴矩形
  • 绘制模式(XOR 或Paint)
  • 用于显示和剪贴坐标的平移原点

2、传递Graphics引用的方法

java.awt.*中几乎所有的方法都传递一个对Graphics的引用:

方法
java.awtCanvasprint(Graphics g)
Comonentprint(Graphics g)
ComonentprintAll(Graphics g)
Comonentprint(Graphics g)
ComonentprintAll(Graphics g)
Comonentupdate(Graphics g)
Containerprint(Graphics g)
ContainerprintComponents(Graphics g)
Containerprint(Graphics g)
ScrollPaneprintComponents(Graphics g)
Property-EditorprintComponents(Graphics g)
java.beansProperty-EditorprintValue(Graphics g, Rectangle r)
Property-EditorSupportprintValue(Graphics g, Rectangle r)

3、返回Graphics引用的方法

方法
java.awtComponentgetGraphics()
ImagegetGraphics()
PrintJobgetGraphics()
Graphicscreate()
Graphicscreate(int x, int y, int w, int h)
  • 图像和打印工作也提供了一个getGraphics方法。通过在一个画面外的缓冲区中显示,Image.getGraphics ()经常用在双缓冲中
  • 当调用create ()时,Graphics . create ()复制Graphics。在 create ()中,使用了四个参数来设置原点和剪贴矩形,作为新创建的副本。参数x和y是用来设置原点的。剪贴矩形是Graphics当前剪贴矩形和由传递给create ()的参数所定义的矩形的交集。

4、Graphics类主要的职责

  • 设置获取图形参数
  • 在输出设备中执行图形操作

5、Graphics类的参数

  • 颜色
  • 字体和字体度量
  • 剪贴矩形
  • 图形模式

图形模式是一个只写属性,而字体度量是只读属性。

在Graphics类中,也提供获取和设置颜色、字体和剪贴矩形的方法

5.1 颜色

每个Graphics维护一个颜色,这个颜色可以用于下面给出的方法操作:

  • void setColor (Color color)
  • Color getColor ()
5.2 字体

用来绘制文本的字体可以用下面的方法来规定和读取:

  • void setFont (Font f)
  • Font getFont ()
5.3 字体度量

字体度量由java.awt.FontMetrics类表示,在该类中,提供了一些关于字体的详细信息,例如字体的高度、倾斜度、行间距等。在Graphics类中,提供两种方法返回对FontMetrics的引用。这两种方法如下:

  • FontMetrics getFontMetrics ()
  • FontMetrics getFontMetrics (Font f)

方法中的无参数方案(第一种方法)返回的字体度量,和Graphic当前的字体结合在一起。第二种方法返回的字体尺度和指定的字体结合在一起。尽管是非镶嵌方法,你同样可以通过设置特殊字体来间接地指定字体尺度。

5.4 剪贴矩形

每个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 ()是更改剪贴矩形的唯一方法。

5.5 图形模式

关于绘图模式,提供下面两种设置绘图模式的方法:

  • void setPaintMode ()
  • void setXORMode ()
  • setPaintMode ()

设置paint图形模式,意味着后面的着色操作将改写现有的图形,setXOR-Mode ()允许绘制和擦掉现有图形而不干扰其下面的图形。Paint模式是图形模式的默认模式,而XOR模式在许多情形下是由手工设置的,例如在一-个绘图程序中使用橡皮带式或压条法生成图形。

 类似资料: