|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.Graphics
public abstract class Graphics
Graphics
类是所有图形上下文的抽象基类,允许应用程序可以在组件(已经在各种设备上实现),以及闭屏图像上,进行绘制。
Graphics
对象封装了 Java 支持的基本呈现操作所需的状态信息。此状态信息包括以下属性:
Component
对象。
setXORMode(java.awt.Color)
)。
坐标是无限细分的,并且位于输出设备的像素之间。绘制图形轮廓的操作是通过使用像素大小的画笔遍历像素间无限细分路径的操作,画笔从路径上的锚点向下和向右绘制。填充图形的操作是填充图形内部区域无限细分路径操作。呈现水平文本的操作是呈现字符字形完全位于基线坐标之上的上升部分。
图形画笔从要遍历的路径向下和向右绘制。这有以下含义:
所有作为此 Graphics
对象方法的参数而出现的坐标,都是相对于调用该方法前的此 Graphics
对象转换原点的。
所有呈现操作仅修改当前剪贴区所限定区域内的像素,此剪贴区是由用户空间中的 Shape
指定的,并且通过使用 Graphics
对象的程序来控制。此用户剪贴区 被转换到设备空间中,并且与设备剪贴区 组合,后者是通过窗口可见性和设备范围定义的。用户剪贴区和设备剪贴区的组合定义了复合剪贴区,它确定了最终的剪贴区域。用户剪贴区不能由呈现系统修改,以反映得到的复合剪贴区。用户剪贴区只能通过 setClip
或 clipRect
方法更改。所有的绘制或写入都以当前的颜色、当前绘图模式和当前字体完成的。
Component
,
clipRect(int, int, int, int)
,
setColor(java.awt.Color)
,
setPaintMode()
,
setXORMode(java.awt.Color)
,
setFont(java.awt.Font)
构造方法摘要 | |
---|---|
protected |
Graphics()
构造一个新的 Graphics 对象。 |
方法摘要 | |
---|---|
abstract void |
clearRect(int x,
int y,
int width,
int height)
通过使用当前绘图表面的背景色进行填充来清除指定的矩形。 |
abstract void |
clipRect(int x,
int y,
int width,
int height)
将当前剪贴区与指定的矩形相交。 |
abstract void |
copyArea(int x,
int y,
int width,
int height,
int dx,
int dy)
将组件的区域复制到由 dx 和 dy 指定的距离处。 |
abstract Graphics |
create()
创建一个新的 Graphics 对象,它是此 Graphics 对象的副本。 |
Graphics |
create(int x,
int y,
int width,
int height)
基于此 Graphics 对象创建一个新的 Graphics 对象,但是使用新的转换和剪贴区域。 |
abstract void |
dispose()
释放此图形的上下文并释放它所使用的所有系统资源。 |
void |
draw3DRect(int x,
int y,
int width,
int height,
boolean raised)
绘制指定矩形的 3-D 突出显示边框。 |
abstract void |
drawArc(int x,
int y,
int width,
int height,
int startAngle,
int arcAngle)
绘制一个覆盖指定矩形的圆弧或椭圆弧边框。 |
void |
drawBytes(byte[] data,
int offset,
int length,
int x,
int y)
使用此图形上下文的当前字体和颜色绘制由指定的 byte 数组给定的文本。 |
void |
drawChars(char[] data,
int offset,
int length,
int x,
int y)
使用此图形上下文的当前字体和颜色绘制由指定字符数组给定的文本。 |
abstract boolean |
drawImage(Image img,
int x,
int y,
Color bgcolor,
ImageObserver observer)
绘制指定图像中当前可用的图像。 |
abstract boolean |
drawImage(Image img,
int x,
int y,
ImageObserver observer)
绘制指定图像中当前可用的图像。 |
abstract boolean |
drawImage(Image img,
int x,
int y,
int width,
int height,
Color bgcolor,
ImageObserver observer)
绘制指定图像中已缩放到适合指定矩形内部的图像。 |
abstract boolean |
drawImage(Image img,
int x,
int y,
int width,
int height,
ImageObserver observer)
绘制指定图像中已缩放到适合指定矩形内部的图像。 |
abstract boolean |
drawImage(Image img,
int dx1,
int dy1,
int dx2,
int dy2,
int sx1,
int sy1,
int sx2,
int sy2,
Color bgcolor,
ImageObserver observer)
绘制当前可用的指定图像的指定区域,动态地缩放图像使其符合目标绘制表面的指定区域。 |
abstract boolean |
drawImage(Image img,
int dx1,
int dy1,
int dx2,
int dy2,
int sx1,
int sy1,
int sx2,
int sy2,
ImageObserver observer)
绘制当前可用的指定图像的指定区域,动态地缩放图像使其符合目标绘制表面的指定区域。 |
abstract void |
drawLine(int x1,
int y1,
int x2,
int y2)
在此图形上下文的坐标系统中,使用当前颜色在点 (x1, y1) 和 (x2, y2) 之间画一条线。 |
abstract void |
drawOval(int x,
int y,
int width,
int height)
绘制椭圆的边框。 |
abstract void |
drawPolygon(int[] xPoints,
int[] yPoints,
int nPoints)
绘制一个由 x 和 y 坐标数组定义的闭合多边形。 |
void |
drawPolygon(Polygon p)
绘制由指定的 Polygon 对象定义的多边形边框。 |
abstract void |
drawPolyline(int[] xPoints,
int[] yPoints,
int nPoints)
绘制由 x 和 y 坐标数组定义的一系列连接线。 |
void |
drawRect(int x,
int y,
int width,
int height)
绘制指定矩形的边框。 |
abstract void |
drawRoundRect(int x,
int y,
int width,
int height,
int arcWidth,
int arcHeight)
用此图形上下文的当前颜色绘制圆角矩形的边框。 |
abstract void |
drawString(AttributedCharacterIterator iterator,
int x,
int y)
使用此图形上下文的当前颜色绘制由指定迭代器给定的文本。 |
abstract void |
drawString(String str,
int x,
int y)
使用此图形上下文的当前字体和颜色绘制由指定 string 给定的文本。 |
void |
fill3DRect(int x,
int y,
int width,
int height,
boolean raised)
绘制一个用当前颜色填充的 3-D 突出显示矩形。 |
abstract void |
fillArc(int x,
int y,
int width,
int height,
int startAngle,
int arcAngle)
填充覆盖指定矩形的圆弧或椭圆弧。 |
abstract void |
fillOval(int x,
int y,
int width,
int height)
使用当前颜色填充外接指定矩形框的椭圆。 |
abstract void |
fillPolygon(int[] xPoints,
int[] yPoints,
int nPoints)
填充由 x 和 y 坐标数组定义的闭合多边形。 |
void |
fillPolygon(Polygon p)
用图形上下文的当前颜色填充由指定的 Polygon 对象定义的多边形。 |
abstract void |
fillRect(int x,
int y,
int width,
int height)
填充指定的矩形。 |
abstract void |
fillRoundRect(int x,
int y,
int width,
int height,
int arcWidth,
int arcHeight)
用当前颜色填充指定的圆角矩形。 |
void |
finalize()
一旦不再引用此图形上下文就释放它。 |
abstract Shape |
getClip()
获取当前的剪贴区域。 |
abstract Rectangle |
getClipBounds()
返回当前剪贴区域的边界矩形。 |
Rectangle |
getClipBounds(Rectangle r)
返回当前剪贴区域的边界矩形。 |
Rectangle |
getClipRect()
已过时。 从 JDK version 1.1 开始,由 getClipBounds() 取代。 |
abstract Color |
getColor()
获取此图形上下文的当前颜色。 |
abstract Font |
getFont()
获取当前字体。 |
FontMetrics |
getFontMetrics()
获取当前字体的字体规格。 |
abstract FontMetrics |
getFontMetrics(Font f)
获取指定字体的字体规格。 |
boolean |
hitClip(int x,
int y,
int width,
int height)
如果指定的矩形区域与当前的剪贴区域相交,则返回 true。 |
abstract void |
setClip(int x,
int y,
int width,
int height)
将当前的剪贴区设置为由给定坐标指定的矩形。 |
abstract void |
setClip(Shape clip)
将当前的剪贴区域设置为任意的剪贴形状。 |
abstract void |
setColor(Color c)
将此图形上下文的当前颜色设置为指定颜色。 |
abstract void |
setFont(Font font)
将此图形上下文的字体设置为指定字体。 |
abstract void |
setPaintMode()
设置将此图形上下文的绘图模式,以便通过此图形上下文中的当前颜色来改写目标。 |
abstract void |
setXORMode(Color c1)
将此图形下文的绘图模式设置为在此图形上下文的当前颜色和新的指定颜色之间交替。 |
String |
toString()
返回表示此 Graphics 对象值的 String 对象。 |
abstract void |
translate(int x,
int y)
将图形上下文的原点平移到当前坐标系统中的点 (x, y)。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
protected Graphics()
Graphics
对象。此构造方法是用于图形上下文的默认构造方法。
因为 Graphics
是一个抽象类,所以应用程序不能直接调用此构造方法。图形上下文从其他图形上下文获取,或者通过在组件上调用 getGraphics
来创建。
create()
,
Component.getGraphics()
方法详细信息 |
---|
public abstract Graphics create()
Graphics
对象,它是此 Graphics
对象的副本。
public Graphics create(int x, int y, int width, int height)
Graphics
对象创建一个新的 Graphics
对象,但是使用新的转换和剪贴区域。新 Graphics
对象的原点平移到指定点 (x, y)。其剪贴区域由原始剪贴区域和指定矩形的交集确定。各个参数均在原始 Graphics
对象的坐标系统内进行解释。新图形上下文除以下两方面之外,其他与原始图形上下文相同:
0
, 0
) 与原始图形上下文中的点 (x, y) 相同。
0
, 0
),其大小由 width
和 height
参数指定。
x
- x 坐标。y
- y 坐标。width
- 剪贴矩形的宽度。height
- 剪贴矩形的高度。
translate(int, int)
,
clipRect(int, int, int, int)
public abstract void translate(int x, int y)
x
- x 坐标。y
- y 坐标。public abstract Color getColor()
Color
,
setColor(Color)
public abstract void setColor(Color c)
c
- 新的呈现颜色。Color
,
getColor()
public abstract void setPaintMode()
public abstract void setXORMode(Color c1)
当执行绘制操作时,当前颜色的像素改变为指定的颜色,反之亦然。
颜色为这两种颜色以外的像素以不可预测但可逆的方式改变;如果相同的图形被绘制两次,则所有像素恢复到原始值。
c1
- XOR 交替颜色public abstract Font getFont()
Font
,
setFont(Font)
public abstract void setFont(Font font)
font
- 字体。getFont()
,
drawString(java.lang.String, int, int)
,
drawBytes(byte[], int, int, int, int)
,
drawChars(char[], int, int, int, int)
public FontMetrics getFontMetrics()
getFont()
,
FontMetrics
,
getFontMetrics(Font)
public abstract FontMetrics getFontMetrics(Font f)
f
- 指定的字体规格
getFont()
,
FontMetrics
,
getFontMetrics()
public abstract Rectangle getClipBounds()
setClip(null)
清除了剪贴区,则此方法返回 null
。该矩形内的坐标相对于此图形上下文的坐标系统原点。
null
。getClip()
,
clipRect(int, int, int, int)
,
setClip(int, int, int, int)
,
setClip(Shape)
public abstract void clipRect(int x, int y, int width, int height)
setClip(null)
清除了剪贴区而没有当前的剪贴区域,那么指定的矩形则成为新的剪贴区。此方法设置了用户剪贴区,此剪贴区与设备边界和窗口可见性关联的剪贴区无关。此方法只能用来缩小当前剪贴区。要扩大当前的剪贴区,需使用 setClip 方法。呈现操作对剪贴区域的外部没有影响。
x
- 要与剪贴区相交的矩形的 x 坐标y
- 要与剪贴区相交的矩形的 y 坐标width
- 要与剪贴区相交的矩形的宽度height
- 要与剪贴区相交的矩形的高度setClip(int, int, int, int)
,
setClip(Shape)
public abstract void setClip(int x, int y, int width, int height)
x
- 新剪贴区矩形的 x 坐标。y
- 新剪贴区矩形的 y 坐标。width
- 新剪贴区矩形的宽度。height
- 新剪贴区矩形的高度。clipRect(int, int, int, int)
,
setClip(Shape)
,
getClip()
public abstract Shape getClip()
setClip(null)
清除了剪贴区,则此方法返回 null
。
Shape
对象,如果未设置剪贴区,则为 null
。getClipBounds()
,
clipRect(int, int, int, int)
,
setClip(int, int, int, int)
,
setClip(Shape)
public abstract void setClip(Shape clip)
Shape
接口的对象都能用于设置剪贴区。仅有通过 getClip
方法和 Rectangle
对象获得的 Shape
对象是确保被支持的 Shape
对象。此方法设置了用户剪贴区,此剪贴区与设备边界和窗口可见性关联的剪贴区无关。
clip
- 用来设置剪贴形状的 Shape
getClip()
,
clipRect(int, int, int, int)
,
setClip(int, int, int, int)
public abstract void copyArea(int x, int y, int width, int height, int dx, int dy)
dx
和 dy
指定的距离处。此方法从 x
和 y
指定的点向下和向右复制。要将组件的区域向左或向上复制,需要指定负的 dx
或 dy
值。如果源矩形的一部分位于组件边界的外部,或者被别一个窗口或组件遮掩,那么 copyArea
将无法复制相关的像素。通过调用组件的 paint
方法可刷新被省略的区域。
x
- 源矩形的 x 坐标。y
- 源矩形的 y 坐标。width
- 源矩形的宽度。height
- 源矩形的高度。dx
- 复制像素的水平距离。dy
- 复制像素的垂直距离。public abstract void drawLine(int x1, int y1, int x2, int y2)
(x1, y1)
和 (x2, y2)
之间画一条线。
x1
- 第一个点的 x 坐标。y1
- 第一个点的 y 坐标。x2
- 第二个点的 x 坐标。y2
- 第二个点的 y 坐标。public abstract void fillRect(int x, int y, int width, int height)
x
和 x + width - 1
。顶边和底边位于 y
和 y + height - 1
。得到的矩形覆盖的区域宽度为 width
像素,高度为 height
像素。使用图形上下文的当前颜色填充该矩形。
x
- 要填充矩形的 x 坐标。y
- 要填充矩形的 y 坐标。width
- 要填充矩形的宽度。height
- 要填充矩形的高度。clearRect(int, int, int, int)
,
drawRect(int, int, int, int)
public void drawRect(int x, int y, int width, int height)
x
和 x + width
。顶边和底边位于 y
和 y + height
。使用图形上下文的当前颜色绘制该矩形。
x
- 要绘制矩形的 x 坐标。y
- 要绘制矩形的 y 坐标。width
- 要绘制矩形的宽度。height
- 要绘制矩形的高度。fillRect(int, int, int, int)
,
clearRect(int, int, int, int)
public abstract void clearRect(int x, int y, int width, int height)
从 Java 1.1 开始,离屏图像的背景色可能与系统相关。应用程序应该使用 setColor
,后跟 fillRect
来确保离屏图像被清除为指定颜色。
x
- 要清除矩形的 x 坐标。y
- 要清除矩形的 y 坐标。width
- 要清除矩形的宽度。height
- 要清除矩形的高度。fillRect(int, int, int, int)
,
drawRect(int, int, int, int)
,
setColor(java.awt.Color)
,
setPaintMode()
,
setXORMode(java.awt.Color)
public abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
x
和 x + width
。矩形的顶边和底边位于 y
和 y + height
。
x
- 要绘制矩形的 x 坐标。y
- 要绘制矩形的 y 坐标。width
- 要绘制矩形的宽度。height
- 要绘制矩形的高度。arcWidth
- 4 个角弧度的水平直径。arcHeight
- 4 个角弧度的垂直直径。fillRoundRect(int, int, int, int, int, int)
public abstract void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
x
和 x + width - 1
。矩形的顶边和底边位于 y
和 y + height - 1
。
x
- 要填充矩形的 x 坐标。y
- 要填充矩形的 y 坐标。width
- 要填充矩形的宽度。height
- 要填充矩形的高度。arcWidth
- 4 个角弧度的水平直径。arcHeight
- 4 个角弧度的垂直直径。drawRoundRect(int, int, int, int, int, int)
public void draw3DRect(int x, int y, int width, int height, boolean raised)
突出显示效果所用的颜色根据当前颜色确定。得到的矩形覆盖的区域为 width + 1
像素宽,height + 1
像素高。
x
- 要绘制矩形的 x 坐标。y
- 要绘制矩形的 y 坐标。width
- 要绘制矩形的宽度。height
- 要绘制矩形的高度。raised
- 一个用于确定矩形是凸出平面显示还是凹入平面显示的 boolean 值。fill3DRect(int, int, int, int, boolean)
public void fill3DRect(int x, int y, int width, int height, boolean raised)
x
- 要填充矩形的 x 坐标。y
- 要填充矩形的 y 坐标。width
- 要填充矩形的宽度。height
- 要填充矩形的高度。raised
- 一个用于确定矩形是凸出平面显示还是凹入平面显示的 boolean 值。draw3DRect(int, int, int, int, boolean)
public abstract void drawOval(int x, int y, int width, int height)
x
、y
、width
和 height
参数指定的矩形内。
椭圆覆盖区域的宽度为 width + 1
像素,高度为 height + 1
像素。
x
- 要绘制椭圆的左上角的 x 坐标。y
- 要绘制椭圆的左上角的 y 坐标。width
- 要绘制椭圆的宽度。height
- 要绘制椭圆的高度。fillOval(int, int, int, int)
public abstract void fillOval(int x, int y, int width, int height)
x
- 要填充椭圆的左上角的 x 坐标。y
- 要填充椭圆的左上角的 y 坐标。width
- 要填充椭圆的宽度。height
- 要填充椭圆的高度。drawOval(int, int, int, int)
public abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
得到的弧由 startAngle
开始,并以当前颜色扩展 arcAngle
度。角度的 0 度位于 3 点钟位置。正值指示逆时针旋转,负值则指示顺时针旋转。
弧的中心是矩形的中心,此矩形的原点为 (x, y),大小由 width
和 height
参数指定。
得到的弧覆盖的区域宽度为 width + 1
像素,高度为 height + 1
像素。
角度是相对于外接矩形的非正方形区域指定的,例如 45 度角始终落在从椭圆中心到外接矩形右上角的连线上。因此,如果外接矩形在一个轴上远远长于另一个轴,则到弧段的起点和结束点的角度沿着边框长轴会发生更大的偏斜。
x
- 要绘制弧的左上角的 x 坐标。y
- 要绘制弧的左上角的 y 坐标。width
- 要绘制弧的宽度。height
- 要绘制弧的高度。startAngle
- 开始角度。arcAngle
- 相对于开始角度而言,弧跨越的角度。fillArc(int, int, int, int, int, int)
public abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
得到的弧由 startAngle
开始,并跨越 arcAngle
角度。角度的 0 度位于 3 点钟位置。正值指示逆时针旋转,负值则指示顺时针旋转。
弧的中心是矩形的中心,此矩形的原点为 (x, y),大小由 width
和 height
参数指定。
得到的弧覆盖的区域宽度为 width + 1
像素,高度为 height + 1
像素。
角度是相对于外接矩形的非正方形区域指定的,例如 45 度角始终落在从椭圆中心到外接矩形右上角的连线上。因此,如果外接矩形在一个轴上远远长于另一个轴,则到弧段的起点和结束点的角度沿着边框长轴会发生更大的偏斜。
x
- 要填充弧的左上角的 x 坐标。y
- 要填充弧的左上角的 y 坐标。width
- 要填充弧的宽度。height
- 要填充弧的高度。startAngle
- 开始角度。arcAngle
- 相对于开始角度而言,弧跨越的角度。drawArc(int, int, int, int, int, int)
public abstract void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
xPoints
- x 点数组yPoints
- y 点数组nPoints
- 点的总数drawPolygon(int[], int[], int)
public abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
此方法绘制由 nPoint
个线段定义的多边形,其中前面的 nPoint - 1
个线段是当 1 ≤ i ≤ nPoints
时,从 (xPoints[i - 1], yPoints[i - 1])
到 (xPoints[i], yPoints[i])
的线段。如果最后一个点和第一个点不同,则图形会通过在这两点间绘制一条线段来自动闭合。
xPoints
- x
坐标数组。yPoints
- y
坐标数组。nPoints
- 点的总数。fillPolygon(int[], int[], int)
,
drawPolyline(int[], int[], int)
public void drawPolygon(Polygon p)
Polygon
对象定义的多边形边框。
p
- 要绘制的多边形。fillPolygon(int[], int[], int)
,
drawPolyline(int[], int[], int)
public abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
此方法绘制由 nPoint
个线段定义的多边形,其中前面的 nPoint - 1
个线段是当 1 ≤ i ≤ 时,从 (xPoints[i - 1], yPoints[i - 1])
到 (xPoints[i], yPoints[i])
的线段。如果最后一个点和第一个点不同,则图形会通过在这两点间绘制一条线段来自动闭合。
多边形内部的区域使用奇偶填充规则定义,此规则也称为交替填充规则。
xPoints
- x
坐标数组。yPoints
- y
坐标数组。nPoints
- 点的总数。drawPolygon(int[], int[], int)
public void fillPolygon(Polygon p)
多边形内部的区域使用奇偶填充规则定义,此规则也称为交替填充规则。
p
- 要填充的多边形。drawPolygon(int[], int[], int)
public abstract void drawString(String str, int x, int y)
str
- 要绘制的 string。x
- x 坐标。y
- y 坐标。drawBytes(byte[], int, int, int, int)
,
drawChars(char[], int, int, int, int)
public abstract void drawString(AttributedCharacterIterator iterator, int x, int y)
iterator
- 要绘制其文本的迭代器x
- x 坐标。y
- y 坐标。drawBytes(byte[], int, int, int, int)
,
drawChars(char[], int, int, int, int)
public void drawChars(char[] data, int offset, int length, int x, int y)
data
- 要绘制的字符数组offset
- 数据的初始偏移量length
- 要绘制的字符数x
- 文本基线的 x 坐标y
- 文本基线的 y 坐标drawBytes(byte[], int, int, int, int)
,
drawString(java.lang.String, int, int)
public void drawBytes(byte[] data, int offset, int length, int x, int y)
data
- 要绘制的数据offset
- 数据的起始偏移量length
- 要绘制的字节数x
- 文本基线的 x 坐标y
- 文本基线的 y 坐标drawChars(char[], int, int, int, int)
,
drawString(java.lang.String, int, int)
public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)
此方法在任何情况下都立刻返回,甚至在整个图像尚未装入,并且它还没有为当前输出设备完成抖动和转换的情况下也是如此。
如果图像已经完全装入,并且其像素不再发生改变,则 drawImage
返回 true
。否则 drawImage
返回 false
,并且随着更多的图像可用或者到了绘制动画另一帧的时候,装入图像的进程就会通知指定的图像观察者。
img
- 要绘制的指定图像。如果 img
为 null,则此方法不执行任何动作。x
- x 坐标。y
- y 坐标。observer
- 当转换了更多图像时要通知的对象。
false
;否则返回 true
。Image
,
ImageObserver
,
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
public abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
图像绘制在此图形上下文坐标空间的指定矩形内部,并且如果需要,则进行缩放。透明像素不影响该处已存在的像素。
此方法在任何情况下都立刻返回,甚至在整个图像没有为当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示尚未完成,则 drawImage
返回 false
。随着更多的图像可用,装入图像的进程将通过调用图像观察者的 imageUpdate
方法来通知它。
图像的缩放版本不一定立刻是可用的,因为已经为此输出设备构造了图像的非缩放版本。每种大小的图像可以被分别缓存,并由各自图像产生序列中的原始数据生成。
img
- 要绘制的指定图像。如果 img
为 null,则此方法不执行任何动作。x
- x 坐标。y
- y 坐标。width
- 矩形的宽度。height
- 矩形的高度。observer
- 当转换了更多图像时要通知的对象。
false
;否则返回 true
。Image
,
ImageObserver
,
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
public abstract boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
此操作等同于用给定颜色填充指定图像宽度和高度的矩形,然后在其上绘制图像,但是可能更为高效。
此方法在任何情况下都立刻返回,甚至在整个图像尚未装入,并且它还没有为当前输出设备完成抖动和转换的情况下也是如此。
如果图像已经完全装入,并且其像素不再发生改变,则 drawImage
返回 true
。否则 drawImage
返回 false
,并且随着更多的图像可用或者到了绘制动画另一帧的时候,装入图像的进程就会通知指定的图像观察者。
img
- 要绘制的指定图像。如果 img
为 null,则此方法不执行任何动作。x
- x 坐标。y
- y 坐标。bgcolor
- 在图像非透明部分下绘制的背景色。observer
- 当转换了更多图像时要通知的对象。
false
;否则返回 true
。Image
,
ImageObserver
,
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
public abstract boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
图像绘制在此图形上下文坐标空间的指定矩形内部,并且如果需要,则进行缩放。以指定的背景色绘制透明像素。此操作等同于用给定颜色填充指定图像宽度和高度的矩形,然后在其上绘制图像,但是可能更为高效。
此方法在任何情况下都立刻返回,甚至在整个图像没有为当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示尚未完成,则 drawImage
返回 false
。随着更多的图像可用,装入图像的进程通知指定的图像观察者。
图像的缩放版本不一定立刻是可用的,因为已经为此输出设备构造了图像的非缩放版本。每种大小的图像可以被分别缓存,并由各自图像产生序列中的原始数据生成。
img
- 要绘制的指定图像。如果 img
为 null,则此方法不执行任何动作。x
- x 坐标。y
- y 坐标。width
- 矩形的宽度。height
- 矩形的高度。bgcolor
- 在图像非透明部分下绘制的背景色。observer
- 当转换了更多图像时要通知的对象。
false
;否则返回 true
。Image
,
ImageObserver
,
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
public abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
此方法在任何情况下都立刻返回,甚至在要绘制的图像区域没有为当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示尚未完成,则 drawImage
返回 false
。随着更多的图像可用,装入图像的进程通知指定的图像观察者。
此方法总是用图像的非缩放版本来呈现缩放的矩形,并且动态地执行所需的缩放。此操作不使用图像的缓存的、缩放版本。执行图像从源到目标的缩放,这样源矩形的第一个坐标被映射到目标矩形的第一个坐标,第二个源坐标被映射到第二个目标坐标。按需要缩放和翻转子图像以保持这些映射关系。
img
- 要绘制的指定图像。如果 img
为 null,则此方法不执行任何动作。dx1
- 目标矩形第一个角的 x 坐标。dy1
- 目标矩形第一个角的 y 坐标。dx2
- 目标矩形第二个角的 x 坐标。dy2
- 目标矩形第二个角的 y 坐标。sx1
- 源矩形第一个角的 x 坐标。sy1
- 源矩形第一个角的 y 坐标。sx2
- 源矩形第二个角的 x 坐标。sy2
- 源矩形第二个角的 y 坐标。observer
- 当缩放并转换了更多图像时要通知的对象。
false
;否则返回 true
。Image
,
ImageObserver
,
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
public abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
以指定的背景色绘制透明像素。此操作等同于用给定颜色填充指定图像宽度和高度的矩形,然后在其上绘制图像,但是可能更为高效。
此方法在任何情况下都立刻返回,甚至在要绘制的图像区域没有为当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示尚未完成,则 drawImage
返回 false
。随着更多的图像可用,装入图像的进程通知指定的图像观察者。
此方法总是用图像的非缩放版本来呈现缩放的矩形,并且动态地执行所需的缩放。此操作不使用图像的缓存的、缩放版本。执行图像从源到目标的缩放,这样源矩形的第一个坐标被映射到目标矩形的第一个坐标,第二个源坐标被映射到第二个目标坐标。按需要缩放和翻转子图像以保持这些映射关系。
img
- 要绘制的指定图像。如果 img
为 null,则此方法不执行任何动作。dx1
- 目标矩形第一个角的 x 坐标。dy1
- 目标矩形第一个角的 y 坐标。dx2
- 目标矩形第二个角的 x 坐标。dy2
- 目标矩形第二个角的 y 坐标。sx1
- 源矩形第一个角的 x 坐标。sy1
- 源矩形第一个角的 y 坐标。sx2
- 源矩形第二个角的 x 坐标。sy2
- 源矩形第二个角的 y 坐标。bgcolor
- 在图像非透明部分下绘制的背景色。observer
- 当缩放并转换了更多图像时要通知的对象。
false
;否则返回 true
。Image
,
ImageObserver
,
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
public abstract void dispose()
dispose
之后,就不能再使用 Graphics
对象。
Java 程序运行时,可以在短时间内创建大量的 Graphics
对象。尽管垃圾回收器的终止进程也能够进行相同的系统资源释放,但是最好通过调用此方法来手工释放相关资源,而不依靠终止进程,因为它需要很长时间才能结束运行。
作为组件 paint
和 update
方法的参数所提供的 Graphics 对象,在这些方法返回时将被系统自动释放。为了提高效率,仅当所使用的 Graphics
对象是由组件或另一个 Graphics
对象直接创建时,程序员才应在使用完此 Graphics 后调用 dispose
。
finalize()
,
Component.paint(java.awt.Graphics)
,
Component.update(java.awt.Graphics)
,
Component.getGraphics()
,
create()
public void finalize()
Object
中的 finalize
dispose()
public String toString()
Graphics
对象值的 String
对象。
Object
中的 toString
@Deprecated public Rectangle getClipRect()
getClipBounds()
取代。
null
。public boolean hitClip(int x, int y, int width, int height)
x
- 要与剪贴区测试的矩形的 x 坐标y
- 要与剪贴区测试的矩形的 y 坐标width
- 要与剪贴区测试的矩形的宽度height
- 要与剪贴区测试的矩形的高度
true
;否则返回 false
。public Rectangle getClipBounds(Rectangle r)
getClipBounds
不同,后者使用现有的矩形而不是分配一个新矩形。此方法涉及用户剪贴区,此用户剪贴区与设备边界和窗口可见性关联的剪贴区无关。如果以前未设置剪贴区,或者已使用 setClip(null)
清除了剪贴区,则此方法返回指定的 Rectangle
。
r
- 要将当前剪贴区域复制到的矩形。此矩形的所有当前值均被覆盖。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。