public abstract class Graphics2D extends Graphics
Graphics2D类扩展了Graphics类,以提供对几何,坐标变换,颜色管理和文本布局的更复杂的控制。
这是在Java(tm)平台上呈现二维形状,文字和图像的基础类。
Graphics2D对象的所有坐标均在与设备无关的称为“用户空间”的坐标系中指定,由应用程序使用。
Graphics2D对象包含一个AffineTransform对象作为其渲染状态的一部分,它定义如何将坐标从用户空间转换为设备空间中与设备相关的坐标。
设备空间中的坐标通常是指单个设备像素,并且在这些像素之间的无限薄的间隙上对齐。 一些Graphics2D对象可用于捕获渲染操作,用于存储到图形元文件中,以便稍后在未知物理分辨率的具体设备上播放。 由于在渲染操作拍摄的分辨率可能不知道,在Graphics2D Transform设置为转换用户的坐标,接近目标设备的预期分辨率的虚拟设备的空间。 如果估计不正确,则可能需要在播放时应用进一步的转换。
渲染属性对象执行的一些操作发生在设备空间中,但所有Graphics2D方法都采用用户空间坐标。
每个Graphics2D对象与定义渲染发生位置的目标相关联。 一个GraphicsConfiguration对象定义了渲染目标的特征,如像素格式和分辨率。 同样的渲染目标是在整个的生活中使用Graphics2D对象。
当创建一个Graphics2D目的, GraphicsConfiguration指定default transform为目标Graphics2D (一个Component或Image )。 该默认变换将用户空间坐标系映射到屏幕和打印机设备坐标,使原点映射到设备目标区域的左上角,增加X坐标向右延伸,Y坐标向下延伸。 默认转换的缩放设置为接近72 dpi的设备(如屏幕设备)的标识。 对于高分辨率设备(如打印机),默认变换的缩放设置为每平方英寸约72个用户空间坐标。 对于图像缓冲区,默认变换是Identity变换。
Graphics2D Graphics2D渲染属性控制的四个阶段。
渲染器可以通过将结果缓存为将来的调用,通过将多个虚拟步骤折叠为单个操作,或通过将各种属性识别为通过修改操作的其他部分可以消除的常见简单情况来优化许多这些步骤。
渲染过程中的步骤如下:
Clip 。 该Clip由指定Shape在用户空间中,并通过使用各种夹操作方法的程序控制Graphics和Graphics2D 。 此用户剪辑由电流变换到设备空间Transform和与所述设备夹 ,它是由窗和设备盘区的能见度定义组合。 用户剪辑和设备剪辑的组合定义了复合剪辑 ,该剪辑确定了最终裁剪区域。 渲染系统不会修改用户剪辑以反映所生成的组合剪辑。 Graphics2D上下文中的当前Composite属性将颜色应用于目标绘图面。 Shape operations
draw(Shape)操作,则createStrokedShape上的当前方法Stroke在属性Graphics2D被用于上下文构造新Shape对象包含指定的轮廓Shape 。 Shape从用户空间变换到使用当前设备空间Transform在Graphics2D上下文。 Shape的大纲是使用Shape的getPathIterator方法Shape ,它返回一个沿着Shape边界重复的PathIterator对象。 Graphics2D对象不能处理弯曲区段,所述PathIterator对象返回然后它可以调用备用getPathIterator的方法Shape ,其展平了Shape 。 Graphics2D上下文中的当前Paint查询PaintContext ,它指定在设备空间中呈现的颜色。 String :
String ,那么当前Font在Graphics2D背景下被要求在中的Unicode字符转换String与任何基本布局和成形算法的字体工具为一组字形的呈现。 AttributedCharacterIterator ,迭代器被要求将其转换为TextLayout使用其嵌入字体属性。 TextLayout实现了更复杂的字形布局算法,可以针对不同写入方向的多种字体自动执行Unicode双向布局调整。 GlyphVector ,则GlyphVector对象已经包含适当的字体特定字形代码,其具有每个字形位置的显式坐标。 Font以获取指示字形的轮廓。 这些轮廓在用户空间中被视为相对于在步骤1中确定的每个字形的位置的形状。 Shape operations所示填写 。 Paint被查询一个PaintContext ,它指定了在设备空间中渲染的颜色。 Image Operations
Image的边界框定义。 图像空间中指定了这个边界框,它是Image对象的局部坐标系。 AffineTransform被传递到drawImage(Image, AffineTransform, ImageObserver) ,所述AffineTransform被用于从图像空间变换的边界框到用户空间。 如果没有提供AffineTransform ,则边框将被视为已经在用户空间中。 Image的边界框使用当前的Transform从用户空间转换为设备空间。 注意,转换边界框的结果不一定导致设备空间中的矩形区域。 Image对象确定要渲染的颜色,根据当前Transform的源到目标坐标映射和可选图像变换进行采样。 Graphics2D呈现属性的默认值为:
Paint
Component 。
Font
Font的Component 。
Stroke
Transform
getDefaultTransform为GraphicsConfiguration的Component 。
Composite
AlphaComposite.SRC_OVER规则。
Clip
Clip ,输出被剪切到Component 。
Java 2D(tm)(Java(tm)2平台)API支持抗锯齿渲染器。 与像素N + 1相反,宽度为一个像素的笔不需要完全落在像素N上。 笔可以部分地落在两个像素上。 不需要为宽笔选择偏移方向,因为沿着笔遍历边缘发生的混合使笔的子像素位置对用户可见。 另一方面,当通过将KEY_ANTIALIASING提示键设置为VALUE_ANTIALIAS_OFF提示值来关闭抗锯齿时,渲染器可能需要应用偏移来确定当笔跨越像素边界时要修改的像素,例如当它是沿设备空间中的整数坐标绘制。 虽然抗锯齿渲染器的能力使得渲染模型不再需要为笔指定偏置,但是对于绘制一像素宽水平的常见情况,抗锯齿和非抗锯齿渲染器是理想的,垂直线在屏幕上。 为了确保通过将KEY_ANTIALIASING提示键设置为VALUE_ANTIALIAS_ON来打开抗混叠不会导致这样的线突然变成两倍的宽度和一半的不透明度,所以希望使模型指定这样的线的路径,以便它们完全覆盖一个特定的一组像素,以帮助增加它们的脆度。
Java 2D API保持与JDK 1.1呈现行为的兼容性,使得Java 2D API下的旧操作和现有渲染器行为不变。 遗留的方法映射到一般draw种fill方法定义,这清楚地表明如何Graphics2D延伸Graphics基于设置Stroke个Transform属性和呈现提示。 该定义在默认属性设置下执行相同。 例如,默认值Stroke是一个BasicStroke ,宽度为1,没有冲击,默认的屏幕绘图变换是一个Identity变换。
以下两个规则提供可预测的渲染行为,无论是否使用混叠或抗锯齿。
BasicStroke对象BasicStroke线条和路径可能被“归一化”,以便在定位在可绘制的各个点上时提供轮廓的一致呈现,以及是否使用锯齿或锯齿绘制。 这种归一化过程由KEY_STROKE_CONTROL提示控制。 没有规定精确的归一化算法,但是这种规范化的目标是确保线条呈现出一致的视觉外观,无论它们如何落在像素网格上,并且以抗锯齿模式促进更稳定的水平和垂直线,使得它们类似于他们的非抗锯齿的对手更紧密。 典型的归一化步骤可以将像素中心的抗锯齿线端点促进以减少混合的量或调整非抗锯齿线的子像素定位,使得浮点线宽度相当于偶数或奇数像素数。 该过程可以将端点移动高达半个像素(通常沿着两个轴向正无穷大),以促进这些一致的结果。 一般遗留方法的以下定义与默认属性设置下的以前指定的行为相同:
fill操作,包括fillRect , fillRoundRect , fillOval , fillArc , fillPolygon和clearRect , fill ,现在可以与所需称为Shape 。 例如,填充矩形时: fill(new Rectangle(x, y, w, h)); 叫做。 drawLine , drawRect , drawRoundRect , drawOval , drawArc , drawPolyline和drawPolygon , draw ,现在可以与所需称为Shape 。 例如,绘制矩形时: draw(new Rectangle(x, y, w, h)); 叫做。 draw3DRect和fill3DRect方法是按照Graphics类中的drawLine和fillRect方法drawLine , fillRect方法将在Graphics2D上下文中对当前Stroke和Paint对象的行为进行Graphics2D 。 该类覆盖那些使用当前Color专有的版本的实现,覆盖当前的Paint ,并且使用fillRect来描述与预先存在的方法完全相同的行为,而不管当前的Stroke的设置。 Graphics类仅定义了setColor方法来控制要绘制的颜色。
由于Java 2D API扩展了Color对象以实现新的Paint接口,现有的setColor方法现在是将当前Paint属性设置为Color对象的Color方法。
setColor(c)相当于setPaint(c) 。
Graphics类定义了两种方法来控制如何将颜色应用于目标。
setPaintMode方法被实现为一种方便的方法来设置默认值Composite ,相当于setComposite(new AlphaComposite.SrcOver) 。 setXORMode(Color xorcolor)方法被实现为一种方便的方法来设置一个特殊的Composite对象,忽略源颜色的Alpha组件,并将目标颜色设置为值: dstpixel = (PixelOf(srccolor) ^ PixelOf(xorcolor) ^ dstpixel); RenderingHints
| Modifier | Constructor and Description |
|---|---|
protected |
Graphics2D()
构造一个新的
Graphics2D对象。
|
| Modifier and Type | Method and Description |
|---|---|
abstract void |
addRenderingHints(Map<?,?> hints)
为渲染算法设置任意数量的首选项的值。
|
abstract void |
clip(Shape s)
将当前的
Clip与指定的
Clip的内部
Shape ,并将
Clip设置为相应的交点。
|
abstract void |
draw(Shape s)
招轮廓
Shape使用当前的设置
Graphics2D环境。
|
void |
draw3DRect(int x, int y, int width, int height, boolean raised)
绘制指定矩形的3-D高亮轮廓。
|
abstract void |
drawGlyphVector(GlyphVector g, float x, float y)
呈现指定的文本 GlyphVector使用Graphics2D上下文的呈现属性。
|
abstract void |
drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
渲染一个 BufferedImage ,用BufferedImageOp过滤。
|
abstract boolean |
drawImage(Image img, AffineTransform xform, ImageObserver obs)
渲染图像,在绘制之前将图像空间的变换应用到用户空间中。
|
abstract void |
drawRenderableImage(RenderableImage img, AffineTransform xform)
渲染一个 RenderableImage ,在绘制之前将图像空间的变换应用到用户空间中。
|
abstract void |
drawRenderedImage(RenderedImage img, AffineTransform xform)
渲染一个 RenderedImage ,在绘制之前将图像空间的变换应用到用户空间。
|
abstract void |
drawString(AttributedCharacterIterator iterator, float x, float y)
根据 TextAttribute类的规范,渲染指定迭代器的文本应用其属性。
|
abstract void |
drawString(AttributedCharacterIterator iterator, int x, int y)
呈现了根据的说明书中施加其属性指定的迭代器的文本 TextAttribute类。
|
abstract void |
drawString(String str, float x, float y)
使用
Graphics2D上下文中的当前文本属性状态渲染由指定的String
String的文本。
|
abstract void |
drawString(String str, int x, int y)
呈现指定的文本
String ,使用当前的文本属性的状态
Graphics2D上下文。
|
abstract void |
fill(Shape s)
使用
Graphics2D上下文的设置填充
Shape的内部。
|
void |
fill3DRect(int x, int y, int width, int height, boolean raised)
绘制一个填充有当前颜色的3-D高亮矩形。
|
abstract Color |
getBackground()
返回用于清除区域的背景颜色。
|
abstract Composite |
getComposite()
返回
Graphics2D上下文中的当前
Composite 。
|
abstract GraphicsConfiguration |
getDeviceConfiguration()
返回与此
Graphics2D的设备
Graphics2D 。
|
abstract FontRenderContext |
getFontRenderContext()
获取Graphics2D上下文中的
Font
Graphics2D上下文。
|
abstract Paint |
getPaint()
返回
Graphics2D上下文的当前
Paint 。
|
abstract Object |
getRenderingHint(RenderingHints.Key hintKey)
返回渲染算法的单个首选项的值。
|
abstract RenderingHints |
getRenderingHints()
获取渲染算法的首选项。
|
abstract Stroke |
getStroke()
返回
Graphics2D上下文中的当前
Stroke 。
|
abstract AffineTransform |
getTransform()
返回
Graphics2D上下文中当前
Transform的副本。
|
abstract boolean |
hit(Rectangle rect, Shape s, boolean onStroke)
检查指定是否 Shape相交指定Rectangle ,这是在设备的空间。
|
abstract void |
rotate(double theta)
串接当前
Graphics2D
Transform具有旋转变换。
|
abstract void |
rotate(double theta, double x, double y)
将当前的
Graphics2D
Transform与转换的旋转变换相连。
|
abstract void |
scale(double sx, double sy)
使用缩放变换连接当前的
Graphics2D
Transform随后的渲染根据相对于先前缩放的指定缩放因子进行调整大小。
|
abstract void |
setBackground(Color color)
设置
Graphics2D上下文的背景颜色。
|
abstract void |
setComposite(Composite comp)
设置
Composite为
Graphics2D环境。
|
abstract void |
setPaint(Paint paint)
为
Graphics2D上下文设置
Paint属性。
|
abstract void |
setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
为渲染算法设置单个首选项的值。
|
abstract void |
setRenderingHints(Map<?,?> hints)
用指定的hints
hints渲染算法的所有首选项的值。
|
abstract void |
setStroke(Stroke s)
设置
Stroke为
Graphics2D环境。
|
abstract void |
setTransform(AffineTransform Tx)
覆盖
Graphics2D上下文中的
Graphics2D 。
|
abstract void |
shear(double shx, double shy)
串接当前
Graphics2D
Transform与剪切变换。
|
abstract void |
transform(AffineTransform Tx)
组成一个
AffineTransform与对象
Transform在此
Graphics2D根据规则最后指定第一涂覆。
|
abstract void |
translate(double tx, double ty)
将当前的
Graphics2D
Transform与平移变换相结合。
|
abstract void |
translate(int x, int y)
将
Graphics2D上下文的原点转换为当前
Graphics2D中的点(
x ,
y )。
|
clearRect, clipRect, copyArea, create, create, dispose, drawArc, drawBytes, drawChars, drawImage, drawImage, drawImage, drawImage, drawImage, drawImage, drawLine, drawOval, drawPolygon, drawPolygon, drawPolyline, drawRect, drawRoundRect, fillArc, fillOval, fillPolygon, fillPolygon, fillRect, fillRoundRect, finalize, getClip, getClipBounds, getClipBounds, getClipRect, getColor, getFont, getFontMetrics, getFontMetrics, hitClip, setClip, setClip, setColor, setFont, setPaintMode, setXORMode, toStringprotected Graphics2D()
Graphics2D对象。
由于Graphics2D是一个抽象类,并且由于必须由不同输出设备的Graphics2D所以不能直接创建Graphics2D对象。
相反, Graphics2D对象必须从另一个获得Graphics2D对象,创建由Component ,或从图像,如获得BufferedImage个对象。
public void draw3DRect(int x,
int y,
int width,
int height,
boolean raised)
用于突出显示效果的颜色是根据当前颜色确定的。 最终的矩形覆盖了width + 1像素宽, height + 1像素高的区域。 该方法使用当前的Color ,忽略当前的Paint 。
draw3DRect在类别
Graphics
x - 要绘制的矩形的x坐标。
y - 要绘制的矩形的y坐标。
width - 要绘制的矩形的宽度。
height - 要绘制的矩形的高度。
raised - 一个布尔值,用于确定矩形是否显示为高于表面或沉入表面。
Graphics.fill3DRect(int, int, int, int, boolean)
public void fill3DRect(int x,
int y,
int width,
int height,
boolean raised)
Color 。
该方法使用当前的Color ,忽略当前的Paint 。
fill3DRect在类别
Graphics
x - 要填充的矩形的x坐标。
y - 要填充的矩形的y坐标。
width - 要填充的矩形的宽度。
height - 要填充的矩形的高度。
raised - 一个布尔值,用于确定矩形是否显示为高于表面或蚀刻到表面。
Graphics.draw3DRect(int, int, int, int, boolean)
public abstract void draw(Shape s)
Shape使用当前的设置Graphics2D环境。
应用的渲染属性包括Clip , Transform , Paint , Composite和Stroke属性。
public abstract boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
Transform中的Graphics2D 。
在应用Graphics2D上下文中的transform属性之前,将指定的变换应用于图像。
应用的呈现属性包括: Clip , Transform和Composite属性。
请注意,如果指定的变换是不可转换的,则不执行渲染。
img - 要呈现的指定图像。
如果img为空,此方法不执行任何操作。
xform - 从图像空间到用户空间的转换
obs - ImageObserver被通知为更多的Image被转换
true如果Image完全加载并完全渲染,或者如果它为null;
false如果Image仍在加载。
transform(java.awt.geom.AffineTransform) ,
setTransform(java.awt.geom.AffineTransform) ,
setComposite(java.awt.Composite) ,
clip(java.awt.Shape) ,
Graphics.setClip(int, int, int, int)
public abstract void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
BufferedImage ,用BufferedImageOp过滤。
应用的呈现属性包括: Clip , Transform和Composite属性。
这相当于:
img1 = op.filter(img, null);
drawImage(img1, new AffineTransform(1f,0f,0f,1f,x,y), null);
op - 渲染之前应用于图像的过滤器
img - 要呈现的指定的BufferedImage 。
如果img为空,此方法不起作用。
x - 呈现图像左上角的用户空间中的位置的x坐标
y - 渲染图像左上角的用户空间中的位置的y坐标
transform(java.awt.geom.AffineTransform) ,
setTransform(java.awt.geom.AffineTransform) ,
setComposite(java.awt.Composite) ,
clip(java.awt.Shape) ,
Graphics.setClip(int, int, int, int)
public abstract void drawRenderedImage(RenderedImage img, AffineTransform xform)
RenderedImage ,在绘制之前将图像空间的变换应用到用户空间。
用户空间到设备空间的转换是用Transform中的Graphics2D 。
在应用Graphics2D上下文中的transform属性之前,将指定的变换应用于图像。
应用的呈现属性包括: Clip , Transform和Composite属性。
请注意,如果指定的变换是不可转换的,则不执行渲染。
img - 要呈现的图像。
如果img为空,此方法不执行任何操作。
xform - 从图像空间到用户空间的转换
transform(java.awt.geom.AffineTransform) ,
setTransform(java.awt.geom.AffineTransform) ,
setComposite(java.awt.Composite) ,
clip(java.awt.Shape) ,
Graphics.setClip(int, int, int, int)
public abstract void drawRenderableImage(RenderableImage img, AffineTransform xform)
RenderableImage ,在绘制之前将图像空间的变换应用到用户空间。
用户空间到设备空间的转换是用Transform中的Graphics2D 。
在应用Graphics2D上下文中的transform属性之前,将指定的变换应用于图像。
应用的呈现属性包括: Clip , Transform和Composite属性。
请注意,如果指定的变换是不可转换的,则不执行渲染。
在Graphics2D对象上设置的渲染提示可能用于渲染RenderableImage 。 如果显式控制需要在由一个特定的识别特定提示RenderableImage ,或如果需要,其中用于提示知识,则RenderedImage应直接从所获得的RenderableImage使用和呈现drawRenderedImage 。
img - 要呈现的图像。
如果img为空,此方法不起作用。
xform - 从图像空间到用户空间的转换
transform(java.awt.geom.AffineTransform) ,
setTransform(java.awt.geom.AffineTransform) ,
setComposite(java.awt.Composite) ,
clip(java.awt.Shape) ,
Graphics.setClip(int, int, int, int) ,
drawRenderedImage(java.awt.image.RenderedImage, java.awt.geom.AffineTransform)
public abstract void drawString(String str, int x, int y)
String ,使用当前的文本属性的状态Graphics2D上下文。
第一个字符的基线在用户空间中的位置( x , y )。
应用的渲染属性包括Clip , Transform , Paint , Font和Composite属性。
对于诸如希伯来语和阿拉伯语的脚本系统中的字符,字形可以从右到左呈现,在这种情况下,提供的坐标是基线上最左边的字符的位置。
drawString在
Graphics
str - 要呈现的字符串
x -在该位置的x坐标
String应该呈现
y -当位置的y坐标
String应该呈现
NullPointerException - 如果
str是
null
Graphics.drawBytes(byte[], int, int, int, int) ,
Graphics.drawChars(char[], int, int, int, int)
public abstract void drawString(String str, float x, float y)
String的文本,使用Graphics2D上下文中的当前文本属性状态。
第一个字符的基线在用户空间中的位置( x , y )。
应用的渲染属性包括Clip , Transform , Paint , Font和Composite属性。
对于诸如希伯来语和阿拉伯语的脚本系统中的字符,字形可以从右到左呈现,在这种情况下,提供的坐标是基线上最左边的字符的位置。
str - 要渲染的
String
x -在该位置的x坐标
String应该呈现
y -当位置的y坐标
String应该呈现
NullPointerException - 如果
str是
null
setPaint(java.awt.Paint) ,
Graphics.setColor(java.awt.Color) ,
Graphics.setFont(java.awt.Font) ,
setTransform(java.awt.geom.AffineTransform) ,
setComposite(java.awt.Composite) ,
Graphics.setClip(int, int, int, int)
public abstract void drawString(AttributedCharacterIterator iterator, int x, int y)
TextAttribute类的规范,渲染指定迭代器的文本应用其属性。
第一个字符的基线位于用户空间中的位置( x , y )。 对于诸如希伯来语和阿拉伯语的脚本系统中的字符,字形可以从右到左呈现,在这种情况下,提供的坐标是基线上最左边的字符的位置。
drawString在
Graphics
iterator - 要呈现其文本的迭代器
x - 要呈现迭代器文本的x坐标
y - 要渲染迭代器文本的y坐标
NullPointerException - 如果
iterator是
null
setPaint(java.awt.Paint) ,
Graphics.setColor(java.awt.Color) ,
setTransform(java.awt.geom.AffineTransform) ,
setComposite(java.awt.Composite) ,
Graphics.setClip(int, int, int, int)
public abstract void drawString(AttributedCharacterIterator iterator, float x, float y)
TextAttribute类。
第一个字符的基线位于用户空间中的位置( x , y )。 对于诸如希伯来语和阿拉伯语的脚本系统中的字符,字形可以从右到左呈现,在这种情况下,提供的坐标是基线上最左边的字符的位置。
iterator - 要呈现其文本的迭代器
x - 要呈现迭代器文本的x坐标
y - 要渲染迭代器文本的y坐标
NullPointerException - 如果
iterator是
null
setPaint(java.awt.Paint) ,
Graphics.setColor(java.awt.Color) ,
setTransform(java.awt.geom.AffineTransform) ,
setComposite(java.awt.Composite) ,
Graphics.setClip(int, int, int, int)
public abstract void drawGlyphVector(GlyphVector g, float x, float y)
GlyphVector使用Graphics2D上下文的呈现属性。
应用的呈现属性包括: Clip , Transform , Paint和Composite属性。
该GlyphVector规定从各个字形Font 。
GlyphVector也可以包含字形位置。
这是将一组字符呈现给屏幕的最快方式。
g - 要呈现的
GlyphVector
x - 用户空间中应该呈现字形的x位置
y - 用户空间中应显示字形的y位置
NullPointerException - 如果
g是
null 。
Font.createGlyphVector(java.awt.font.FontRenderContext, java.lang.String) , GlyphVector , setPaint(java.awt.Paint) , Graphics.setColor(java.awt.Color) , setTransform(java.awt.geom.AffineTransform) , setComposite(java.awt.Composite) , Graphics.setClip(int, int, int, int)
public abstract void fill(Shape s)
Graphics2D上下文的设置填充Shape的内部。
应用的呈现属性包括: Clip , Transform , Paint和Composite 。
public abstract boolean hit(Rectangle rect, Shape s, boolean onStroke)
Shape相交指定Rectangle ,这是在设备的空间。
如果onStroke是假的,指定的内部此方法检查是否Shape相交指定Rectangle 。
如果onStroke是true ,该方法检查是否Stroke指定的Shape轮廓相交指定Rectangle 。
考虑到的呈现属性包括: Clip , Transform和Stroke属性。
rect - 设备空间中检查命中的区域
s -
Shape检查一击
onStroke - 用于选择测试时的标记或填充形状的标志。
如果标志是true , Stroke对Stroke轮廓进行测试。
如果标志是false ,则填写的Shape已经过测试。
true如果有打击;
false否则。
setStroke(java.awt.Stroke) ,
fill(java.awt.Shape) ,
draw(java.awt.Shape) ,
transform(java.awt.geom.AffineTransform) ,
setTransform(java.awt.geom.AffineTransform) ,
clip(java.awt.Shape) ,
Graphics.setClip(int, int, int, int)
public abstract GraphicsConfiguration getDeviceConfiguration()
Graphics2D的设备配置
Graphics2D 。
Graphics2D 。
public abstract void setComposite(Composite comp)
Composite设置Graphics2D上下文。
该Composite被所有的绘图方法,如所用drawImage , drawString , draw和fill 。
它指定在渲染过程中如何将新像素与图形设备上的现有像素组合。
如果这个Graphics2D上下文绘制到Component显示屏幕上, Composite是一个自定义对象,而不是实例AlphaComposite类,如果有安全管理器,其checkPermission方法被称为与AWTPermission("readDisplayPixels")许可。
comp - 要用于渲染的
Composite对象
SecurityException - 如果使用自定义
Composite对象渲染到屏幕并设置了安全管理器,并且其
checkPermission方法不允许该操作。
Graphics.setXORMode(java.awt.Color) , Graphics.setPaintMode() , getComposite() , AlphaComposite , SecurityManager.checkPermission(java.security.Permission) , AWTPermission
public abstract void setPaint(Paint paint)
Paint的属性Graphics2D环境。
调用此方法与null Paint对象不会对目前的任何影响Paint这个属性Graphics2D 。
paint - 在
Paint过程中要用于生成颜色的
Paint对象,或
null
Graphics.setColor(java.awt.Color) , getPaint() , GradientPaint , TexturePaint
public abstract void setStroke(Stroke s)
Stroke为
Graphics2D环境。
s -
Shape在渲染过程中用于笔画
Stroke对象
BasicStroke , getStroke()
public abstract void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
RenderingHints类。
hintKey - 提示设置的关键。
hintValue - 指示指定提示类别的首选项的值。
getRenderingHint(RenderingHints.Key) , RenderingHints
public abstract Object getRenderingHint(RenderingHints.Key hintKey)
RenderingHints类。
hintKey - 对应于提示的关键。
RenderingHints类中定义。
RenderingHints , setRenderingHint(RenderingHints.Key, Object)
public abstract void setRenderingHints(Map<?,?> hints)
hints渲染算法的所有首选项的值。
所有渲染提示的现有值将被丢弃,并且从指定的Map对象初始化新的一组已知提示和值。
提示类别包括渲染过程中渲染质量和总体时间/质量权衡的控件。
有关某些常用键和值的定义,请参阅RenderingHints类。
hints - 渲染提示要设置
getRenderingHints() , RenderingHints
public abstract void addRenderingHints(Map<?,?> hints)
Map对象中存在的渲染提示的值Map被修改。
不存在于指定对象中的所有其他首选项未修改。
提示类别包括渲染过程中渲染质量和总体时间/质量权衡的控件。
有关某些常用键和值的定义,请参阅RenderingHints类。
hints - 渲染提示要设置
RenderingHints
public abstract RenderingHints getRenderingHints()
RenderingHints类。
RenderingHints包含当前偏好。
RenderingHints , setRenderingHints(Map)
public abstract void translate(int x,
int y)
Graphics2D上下文的原点转换为当前Graphics2D中的点( x , y )。
修改Graphics2D上下文,使其新起点对应于Graphics2D上下文的前坐标系中的点( x , y )。
在这种图形上下文中的后续渲染操作中使用的所有坐标都是相对于这个新的起点。
public abstract void translate(double tx,
double ty)
Graphics2D Transform与平移变换相连。
随后的渲染相对于前一位置转换指定的距离。
这等同于调用变换(T),其中T是一个AffineTransform由以下矩阵表示:
[ 1 0 tx ]
[ 0 1 ty ]
[ 0 0 1 ]
tx - 沿x轴平移的距离
ty - 沿y轴平移的距离
public abstract void rotate(double theta)
Graphics2D Transform具有旋转变换。
随后的渲染相对于以前的原点旋转指定的弧度。
这等同于调用transform(R) ,其中R是AffineTransform由以下矩阵表示:
[ cos(theta) -sin(theta) 0 ]
[ sin(theta) cos(theta) 0 ]
[ 0 0 1 ]
以正角度θ旋转正X轴上的点朝着正y轴旋转。
theta - 以弧度表示的旋转角度
public abstract void rotate(double theta,
double x,
double y)
Graphics2D Transform了平移的旋转变换。
随后的渲染由通过转换到指定位置,以指定弧度旋转并以与原始翻译相同的量翻译构造的变换来变换。
这相当于下列呼叫序列:
translate(x, y);
rotate(theta);
translate(-x, -y);
以正角度θ旋转正X轴上的点朝着正y轴旋转。
theta - 以弧度表示的旋转角度
x - 旋转原点的x坐标
y - 旋转原点的y坐标
public abstract void scale(double sx,
double sy)
Graphics2D Transform后续渲染根据相对于先前缩放比例的指定缩放因子进行调整大小。
这等同于调用transform(S) ,其中S是一个AffineTransform由以下矩阵表示:
[ sx 0 0 ]
[ 0 sy 0 ]
[ 0 0 1 ]
sx - 后续渲染操作中的X坐标相对于以前的渲染操作相乘的量。
sy - 后续渲染操作中的Y坐标相对于以前的渲染操作相乘的量。
public abstract void shear(double shx,
double shy)
Graphics2D Transform与剪切变换。
随后的渲染由相对于前一位置的指定乘数剪切。
这等同于调用transform(SH) ,其中SH是AffineTransform由以下矩阵表示:
[ 1 shx 0 ]
[ shy 1 0 ]
[ 0 0 1 ]
shx - 坐标根据其Y坐标在正X轴方向上移位的乘数
shy - 坐标在正Y轴方向上的乘数作为其X坐标的函数
public abstract void transform(AffineTransform Tx)
AffineTransform与对象Transform在此Graphics2D根据规则最后指定第一涂覆。
如果当前的Transform是Cx,与Tx的组合结果是一个新的Transform Cx'。
Cx'成为这个Transform的当前Graphics2D 。
通过更新的Transform Cx'转换点p等价于首先通过Tx转换p,然后将结果转换为原始的Transform Cx。
换句话说,Cx'(p)= Cx(Tx(p))。
如果需要,可以复制Tx,因此对Tx的进一步修改不会影响渲染。
Tx - 与当前
Transform组合的
AffineTransform对象
setTransform(java.awt.geom.AffineTransform) , AffineTransform
public abstract void setTransform(AffineTransform Tx)
Graphics2D上下文中的Graphics2D 。
警告:该方法不应该用于在现有转换之上应用新的坐标变换,因为Graphics2D可能已经具有其他目的所需的变换,例如渲染Swing组件或应用缩放变换来调整分辨率的打印机。
要添加坐标变换,使用transform , rotate , scale ,或shear方法。 setTransform方法仅用于在渲染后恢复原始Graphics2D变换,如下例所示:
// Get the current transform
AffineTransform saveAT = g2.getTransform();
// Perform transformation
g2d.transform(...);
// Render
g2d.draw(...);
// Restore original transform
g2d.setTransform(saveAT);
Tx -所述
AffineTransform这是从检索到
getTransform方法
transform(java.awt.geom.AffineTransform) , getTransform() , AffineTransform
public abstract AffineTransform getTransform()
Graphics2D上下文中当前
Transform的副本。
AffineTransform在
Graphics2D上下文中。
transform(java.awt.geom.AffineTransform) ,
setTransform(java.awt.geom.AffineTransform)
public abstract Paint getPaint()
Graphics2D上下文的当前
Paint 。
Graphics2D
Paint ,它定义了颜色或图案。
setPaint(java.awt.Paint) ,
Graphics.setColor(java.awt.Color)
public abstract Composite getComposite()
Graphics2D上下文中的当前
Composite 。
Graphics2D
Composite ,它定义了合成样式。
setComposite(java.awt.Composite)
public abstract void setBackground(Color color)
Graphics2D上下文的背景颜色。
背景颜色用于清除区域。
当一个Graphics2D构造一个Component时,背景颜色是从Component 。
设置在背景色Graphics2D方面仅影响后续clearRect调用,而不是背景色Component 。
要改变的背景Component ,使用适当的方法Component 。
color - 用于后续调用
clearRect的背景颜色
getBackground() ,
Graphics.clearRect(int, int, int, int)
public abstract Color getBackground()
Graphics2D
Color ,它定义了背景颜色。
setBackground(java.awt.Color)
public abstract Stroke getStroke()
Graphics2D上下文中的当前
Stroke 。
Graphics2D
Stroke ,它定义了线条样式。
setStroke(java.awt.Stroke)
public abstract void clip(Shape s)
Clip与内部指定的Shape Shape ,并将Clip设置为相应的交点。
Shape的Shape与当前Graphics2D Transform进行转换,然后与当前的Clip 。
该方法用于使当前的Clip更小。
要使Clip较大,请使用setClip 。
通过此方法修改的用户剪辑与与设备边界和可见性相关联的剪辑无关。
如果以前没有设置任何剪辑,或者使用null参数使用setClip剪辑剪辑,则指定的Shape将成为新的用户剪辑。
s -在Shape与当前相交Clip 。
如果s为null ,则此方法将清除当前的Clip 。
public abstract FontRenderContext getFontRenderContext()
Font Graphics2D上下文。
FontRenderContext封装了抗锯齿和分数指标等应用提示,以及目标设备特定信息,例如每英寸点数。
当使用执行排版格式的对象(如Font和TextLayout时,该信息Font TextLayout 。
这些信息也应该由执行自己的布局的应用程序提供,并且当各种渲染提示已经应用于文本呈现时,需要对字形的各种特征进行准确的测量,例如提前和行高。
FontRenderContext , Font.createGlyphVector(java.awt.font.FontRenderContext, java.lang.String) , TextLayout
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.