近來學習Java AWT圖形開發。
每个Graphics中都保持了下面的图形属性:
·用来绘制和填充形状的颜色。
·用来描述文本的字体。
·剪贴矩形。
·绘制模式(XOR或Paint)。
·用于显示和剪贴坐标的平移原点。
表3-1列出的JDK方法都传递一个对Graphics的引用。注意表3-1忽略了java.awt.peer方法。
表3-1 传递一个对Graphics的引用的JDK方法
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
软件包 类 方 法
─────────────────────────────────
java.awt Canvas paint(Graphics g)
Component paint(Graphics g)
Component paintAll(Graphics g)
Component print(Graphics g)
Component printAll(Graphics g)
Component update(Graphics g)
Container paint(Graphics g)
Container paintComponents(Graphics g)
Container print(Graphics g)
Container printComponents(Graphics g)
ScrollPane printComponents(Graphics g)
java.beans Property_Enditor paintValue(Graphics g,Rectangle r)
Property_EnditorSupport paintValue(Graphics g,Rectangle r)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
在java.awt.package软件包中,几乎所有的方法都传递一个对Graphics的引用。此外,我们还要注意用来绘制或打印AWT构件的一些方法。
在表3-2中,列出了那些返回Graphics引用的方法。在该表中最常使用的方法是Component.getGraphics(),它返回和java.awt.Component相关的Graphics引用。注意表3-2同样忽略了java.awt.peer方法。
表3-2 返回Graphics 引用的JDK方法
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
软件包 类 方 法
─────────────────────────────────
java.awt Component getGraphics()
Image getGraphics()
PaintJob getGraphics()
Graphics create()
Graphics create(int x,int y,int w,int h)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
图像和打印工作也提供了一个getGraphics方法。通过在一个画面外的缓冲区中显示,Image.getGraphics()经常用在双缓冲中——请参见6.10节“双缓冲入门”中的内容。
当调用create()时,Graphics.create()复制Graphics。在create()中使用了四个参数来设置原点和剪贴矩形,作为新创建的副本。参数x和y是用来设置原点的。剪贴矩形是Graphics当前剪贴矩形和由传递给create()的参数所定义的矩形的交集。
Graphics参数
Graphics类履行两个主要的职责:
·设置和获取图形参数。
·在输出设备中执行图形操作。
顏色:
·void setColoer(Color color)
·Color getColor()
字体:
·void setFont(Font f)
·Font getFont()
字体度量:
由java.awt.FontMetrics类表示,在该类中,提供了一些关于字体的详细信息,例如字体的高度、倾斜度、行间距等。在Graphics类中,提供两种方法返回对FontMetrics的引用。这两种方法如下:
·FontMetrics getFontMetrics()
·FontMetrics getFontMetrics(Font f)
方法中的无参数方案(第一种方法)返回的字体度量,和Graphics当前的字体结合在一起。第二种方法返回的字体尺度和指定的字体结合在一起。尽管是非镶嵌方法,你同样可以通过设置特殊字体来间接地指定字体尺度。