public abstract class Graphics extends Object
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)
Modifier | Constructor and Description |
---|---|
protected |
Graphics()
构造一个新的
Graphics 对象。
|
Modifier and Type | Method and Description |
---|---|
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)
绘制由指定字节数组给出的文本,使用此图形上下文的当前字体和颜色。
|
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)
根据 TextAttribute 类的规范,呈现指定迭代器的文本,以应用其属性。
|
abstract void |
drawString(String str, int x, int y)
使用该图形上下文的当前字体和颜色绘制由指定字符串给出的文本。
|
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)
使用图形上下文的当前颜色填充由指定的多边形对象定义的多边形。
|
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 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()
返回一个
String 此
Graphics 对象值的
Graphics 对象。
|
abstract void |
translate(int x, int y)
将图形上下文的原点转换为当前坐标系中的点(
x ,
y )。
|
protected Graphics()
Graphics
对象。
该构造函数是图形上下文的默认构造函数。
由于Graphics
是一个抽象类,因此应用程序不能直接调用此构造函数。 图形上下文可以从其他图形上下文中获得,也可以通过调用getGraphics
上的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
对象的坐标系中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)
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
接口,可用于设置剪辑。
仅Shape
被保证将支持的对象是Shape
,其经由所获得的对象getClip
方法和通过Rectangle
对象。
此方法设置用户剪辑,该剪辑独立于与设备边界相关联的剪辑和窗口可见性。
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
方法进行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
- 在四个角落的弧线的水平直径。
arcHeight
- 四角的圆弧的垂直直径。
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
- 四角的圆弧水平直径。
arcHeight
- 四角的弧线垂直直径。
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
- 一个布尔值,用于确定矩形是否显示为高于表面或沉入表面。
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
- 一个布尔值,用于确定矩形是否显示为高于表面或蚀刻到表面。
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
线段是线段从(xPoints[i - 1], yPoints[i - 1])
至(xPoints[i], yPoints[i])
,为1‰‰¤I A‰¤ nPoints
。 如果这些点不同,则绘制连接最终点到第一个点的线将自动关闭该图形。
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
线段是线段从(xPoints[i - 1], yPoints[i - 1])
至(xPoints[i], yPoints[i])
,为1‰‰¤I A‰¤ nPoints
。 如果这些点不同,则绘制连接最终点到第一个点的线将自动关闭该图形。
多边形内的区域使用偶数填充规则(也称为交替规则)来定义。
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
- 要绘制的字符串。
x
-
x坐标。
y
-
y坐标。
NullPointerException
- 如果
str
是
null
。
drawBytes(byte[], int, int, int, int)
,
drawChars(char[], int, int, int, int)
public abstract void drawString(AttributedCharacterIterator iterator, int x, int y)
TextAttribute
类的规范,渲染指定迭代器的文本应用其属性。
最左边角色的基线是在这个图形上下文的坐标系中的位置( x , y )。
iterator
- 要绘制其文本的迭代器
x
-
x坐标。
y
-
y坐标。
NullPointerException
- 如果
iterator
是
null
。
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坐标
NullPointerException
- 如果
data
是
null
。
IndexOutOfBoundsException
- 如果
offset
或
length
小于零,或
offset+length
大于
data
数组的长度。
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)
不建议使用此方法,因为每个字节被解释为0到255范围内的Unicode代码点,因此只能用于绘制该范围内的拉丁字符。
data
- 要绘制的数据
offset
- 数据中的起始偏移量
length
- 绘制的字节数
x
- 文本基线的
x坐标
y
- 文本基线的
y坐标
NullPointerException
- 如果
data
是
null
。
IndexOutOfBoundsException
- 如果
offset
或
length
小于零,或
offset+length
大于
data
数组的长度。
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
为空,此方法不执行任何操作。
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
-
width
的宽度。
height
-
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
为空,此方法不起作用。
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
为空,则此方法不起作用。
x
-
x坐标。
y
-
y坐标。
width
-
width
的宽度。
height
-
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
为空,此方法不执行任何操作。
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
为空,此方法不执行任何操作。
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()
Graphics
后不能使用对象dispose
已被调用。
当Java程序运行时,可以在短时间内创建大量的Graphics
对象。 虽然垃圾收集器的完成过程也处理相同的系统资源,但最好通过调用此方法手动释放相关资源,而不是依赖长时间不能完成的完成过程。
其提供作为参数传递给图形对象paint
种update
组件的方法时,这些方法返回时由系统自动释放。 为了提高效率,只有在直接从组件或另一个Graphics
对象创建完成后,程序员才能使用Graphics
对象,才能调用dispose
。
public String toString()
String
此
Graphics
对象值的
Graphics
对象。
@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
- 当前裁剪区域被复制到的矩形。
此矩形中的任何当前值都将被覆盖。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.