java.lang.Object
java.awt.font.GlyphVector
- 所有已实现的接口:
-
Cloneable
一个
GlyphVector
对象是包含每个字形在转换坐标空间中的几何信息的字形集合,该坐标空间对应于最终显示GlyphVector
的设备。
GlyphVector
不会尝试解释其包含的字形序列。序列中相邻字形之间的关系仅用于确定字形在视觉坐标空间中的放置。
GlyphVector
的实例是由Font
创建的。
在一个可以缓存文本中间表示的文本处理应用程序中,为了在呈现过程中最快地向用户呈现字符的视觉表示,创建并缓存GlyphVector
是最快的方法。
GlyphVector
与一个Font
关联,并且只能提供与这个Font
相关的有用数据。此外,从GlyphVector
获取的度量通常不是几何可伸缩的,因为像素化和间距取决于Font
内的网格拟合算法。为了准确测量GlyphVector
及其组成字形,必须在创建GlyphVector
时指定缩放变换、抗锯齿模式和分数度量模式。这些特性可以从目标设备中派生。
对于GlyphVector
中的每个字形,您可以获取:
- 字形的位置
- 与字形关联的变换
- 字形在
GlyphVector
上下文中的度量。字形的度量在不同的变换、应用指定的渲染提示和GlyphVector
中的特定字形实例下可能不同。
更改用于创建GlyphVector
的数据不会更改GlyphVector
的状态。
提供了用于调整GlyphVector
中字形位置的方法。这些方法最适合于执行对齐操作以呈现字形。
提供了用于转换GlyphVector
中单个字形的方法。这些方法主要用于特殊效果。
提供了返回整个GlyphVector
或GlyphVector
中单个字形的视觉、逻辑和像素边界的方法。
提供了返回GlyphVector
的Shape
以及GlyphVector
中单个字形的方法。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
与getLayoutFlags一起使用的标志,指示此GlyphVector
具有复杂的字形到字符映射(不是严格按照升序或降序匹配运行方向将字形映射到字符)。static final int
与getLayoutFlags一起使用的标志,指示此GlyphVector
具有位置调整。static final int
与getLayoutFlags一起使用的标志,指示此GlyphVector
具有每个字形的变换。static final int
从getLayoutFlags获取支持的标志的掩码。static final int
与getLayoutFlags一起使用的标志,指示此GlyphVector
具有从右到左的运行方向。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
equals
(GlyphVector set) 测试指定的GlyphVector
是否与此GlyphVector
完全相等。abstract Font
getFont()
返回与此GlyphVector
关联的Font
。abstract FontRenderContext
返回与此GlyphVector
关联的FontRenderContext
。int
getGlyphCharIndex
(int glyphIndex) 返回指定字形的字符索引。int[]
getGlyphCharIndices
(int beginGlyphIndex, int numEntries, int[] codeReturn) 返回指定字形的字符索引。abstract int
getGlyphCode
(int glyphIndex) 返回指定字形的字形代码。abstract int[]
getGlyphCodes
(int beginGlyphIndex, int numEntries, int[] codeReturn) 返回指定字形的字形代码数组。abstract GlyphJustificationInfo
getGlyphJustificationInfo
(int glyphIndex) 返回此GlyphVector
中指定索引处的字形的对齐信息。abstract Shape
getGlyphLogicalBounds
(int glyphIndex) 返回此GlyphVector
中指定字形的逻辑边界。abstract GlyphMetrics
getGlyphMetrics
(int glyphIndex) 返回此GlyphVector
中指定索引处的字形的度量。abstract Shape
getGlyphOutline
(int glyphIndex) 返回一个Shape
,其内部对应于此GlyphVector
中指定字形的视觉表示。getGlyphOutline
(int glyphIndex, float x, float y) 返回一个Shape
,其内部对应于此GlyphVector
中指定字形的视觉表示,偏移至x,y。getGlyphPixelBounds
(int index, FontRenderContext renderFRC, float x, float y) 当在具有给定FontRenderContext
的Graphics
中以给定位置呈现此GlyphVector
时,返回索引处的字形的像素边界。abstract Point2D
getGlyphPosition
(int glyphIndex) 返回指定字形相对于此GlyphVector
原点的位置。abstract float[]
getGlyphPositions
(int beginGlyphIndex, int numEntries, float[] positionReturn) 返回指定字形的字形位置数组。abstract AffineTransform
getGlyphTransform
(int glyphIndex) 返回此GlyphVector
中指定字形的变换。abstract Shape
getGlyphVisualBounds
(int glyphIndex) 返回GlyphVector
中指定字形的视觉边界。int
返回描述GlyphVector
全局状态的标志。abstract Rectangle2D
返回此GlyphVector
的逻辑边界。abstract int
返回此GlyphVector
中的字形数。abstract Shape
返回一个Shape
,其内部对应于此GlyphVector
的视觉表示。abstract Shape
getOutline
(float x, float y) 返回一个Shape
,其内部对应于在x,y处呈现此GlyphVector
的视觉表示。getPixelBounds
(FontRenderContext renderFRC, float x, float y) 返回在具有给定FontRenderContext
的图形中以给定位置呈现此GlyphVector
时的像素边界。abstract Rectangle2D
返回此GlyphVector
的视觉边界。视觉边界是此GlyphVector
轮廓的边界框。abstract void
为此GlyphVector
中的每个字形分配默认位置。abstract void
setGlyphPosition
(int glyphIndex, Point2D newPos) 设置此GlyphVector
中指定字形的位置。abstract void
setGlyphTransform
(int glyphIndex, AffineTransform newTX) 设置此GlyphVector
中指定字形的变换。
-
Field Details
-
FLAG_HAS_TRANSFORMS
public static final int FLAG_HAS_TRANSFORMS与getLayoutFlags一起使用的标志,指示此GlyphVector
具有每个字形的变换。- 自:
- 1.4
- 参见:
-
FLAG_HAS_POSITION_ADJUSTMENTS
public static final int FLAG_HAS_POSITION_ADJUSTMENTS与getLayoutFlags一起使用的标志,指示此GlyphVector
具有位置调整。当为true时,字形位置与字形的累积默认前进不匹配(例如,如果进行了字距调整)。- 自:
- 1.4
- 参见:
-
FLAG_RUN_RTL
public static final int FLAG_RUN_RTL与getLayoutFlags一起使用的标志,指示此GlyphVector
具有从右到左的运行方向。这指的是字形到字符的映射,并不意味着字形的视觉位置一定按照此顺序,尽管通常它们会。- 自:
- 1.4
- 参见:
-
FLAG_COMPLEX_GLYPHS
public static final int FLAG_COMPLEX_GLYPHS与getLayoutFlags一起使用的标志,指示此GlyphVector
具有复杂的字形到字符映射(不是严格按照升序或降序匹配运行方向将字形映射到字符)。- 自:
- 1.4
- 参见:
-
FLAG_MASK
public static final int FLAG_MASK从getLayoutFlags获取支持的标志的掩码。只有掩码覆盖的位应该被测试。- 自:
- 1.4
- 参见:
-
-
Constructor Details
-
GlyphVector
protected GlyphVector()子类调用的构造函数。
-
-
Method Details
-
getFont
返回与此GlyphVector
关联的Font
。- 返回:
-
用于创建此
GlyphVector
的Font
。 - 参见:
-
getFontRenderContext
返回与此GlyphVector
关联的FontRenderContext
。- 返回:
-
用于创建此
GlyphVector
的FontRenderContext
。 - 参见:
-
performDefaultLayout
public abstract void performDefaultLayout()为此GlyphVector
中的每个字形分配默认位置。这可能会破坏在创建此GlyphVector
的初始布局期间生成的信息。 -
getNumGlyphs
public abstract int getNumGlyphs()返回此GlyphVector
中的字形数。- 返回:
-
此
GlyphVector
中的字形数。
-
getGlyphCode
public abstract int getGlyphCode(int glyphIndex) 返回指定字形的字形代码。此返回值对于创建此GlyphVector
的Font
对象之外的任何内容都是无意义的。- 参数:
-
glyphIndex
- 对应于要检索其字形代码的字形的此GlyphVector
中的索引。 - 返回:
-
指定
glyphIndex
处字形的字形代码。 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于 0 或大于等于此GlyphVector
中的字形数
-
getGlyphCodes
public abstract int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn) 返回指定字形的字形代码数组。此返回值的内容对于创建此GlyphVector
的Font
以外的任何内容都是无意义的。此方法用于在处理字形代码时提供方便和性能。如果未传入数组,则会创建一个新数组。- 参数:
-
beginGlyphIndex
- 开始检索字形代码的此GlyphVector
中的索引 -
numEntries
- 要检索的字形代码数 -
codeReturn
- 接收字形代码并然后返回的数组 - 返回:
- 指定字形的字形代码数组。
- 抛出:
-
IllegalArgumentException
- 如果numEntries
小于 0 -
IndexOutOfBoundsException
- 如果beginGlyphIndex
小于 0 -
IndexOutOfBoundsException
- 如果beginGlyphIndex
和numEntries
的总和大于此GlyphVector
中的字形数
-
getGlyphCharIndex
public int getGlyphCharIndex(int glyphIndex) 返回指定字形的字符索引。字符索引是由字形表示的第一个逻辑字符的索引。默认实现假定字形到字符的映射是一对一的、从左到右的。- 参数:
-
glyphIndex
- 字形的索引 - 返回:
- 由字形表示的第一个字符的索引
- 自:
- 1.4
-
getGlyphCharIndices
public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn) 返回指定字形的字符索引。字符索引是由字形表示的第一个逻辑字符的索引。按字形顺序返回索引。默认实现为每个字形调用 getGlyphCharIndex,并且子类可能希望出于性能原因覆盖此实现。在处理字形代码时,使用此方法提供方便和性能。如果未传入数组,则会创建一个新数组。- 参数:
-
beginGlyphIndex
- 第一个字形的索引 -
numEntries
- 要检索的字形索引数 -
codeReturn
- 用于返回字符索引的数组 - 返回:
- 每个字形一个字符索引的数组。
- 自:
- 1.4
-
getLogicalBounds
返回此GlyphVector
的逻辑边界。在将此GlyphVector
定位相对于视觉上相邻的其他GlyphVector
对象时使用此方法。- 返回:
-
是此
GlyphVector
的逻辑边界的Rectangle2D
。
-
getVisualBounds
返回此GlyphVector
的视觉边界。视觉边界是此GlyphVector
轮廓的边界框。由于栅格化和像素对齐,可能导致此框不包围呈现此GlyphVector
的所有受影响像素。- 返回:
-
是此
GlyphVector
的边界框的Rectangle2D
。
-
getPixelBounds
在给定位置的图形上下文中使用给定的FontRenderContext
渲染时,返回此GlyphVector
的像素边界。renderFRC 不需要与此GlyphVector
的FontRenderContext
相同,可以为 null。如果为 null,则使用此GlyphVector
的FontRenderContext
。默认实现返回视觉边界,偏移为 x、y 并四舍五入到下一个整数值(即返回一个整数矩形,包围视觉边界)并忽略 FRC。子类应该覆盖此方法。- 参数:
-
renderFRC
-Graphics
的FontRenderContext
。 -
x
- 渲染此GlyphVector
的 x 坐标。 -
y
- 渲染此GlyphVector
的 y 坐标。 - 返回:
-
包围将受影响像素的像素的
Rectangle
。 - 自:
- 1.4
-
getOutline
返回一个Shape
,其内部对应于此GlyphVector
的视觉表示。- 返回:
-
是此
GlyphVector
的轮廓的Shape
。
-
getOutline
返回一个Shape
,其内部对应于在 x、y 处呈现此GlyphVector
的视觉表示。- 参数:
-
x
- 此GlyphVector
的 X 坐标。 -
y
- 此GlyphVector
的 Y 坐标。 - 返回:
-
是在指定坐标处呈现此
GlyphVector
的轮廓的Shape
。
-
getGlyphOutline
返回一个Shape
,其内部对应于此GlyphVector
中指定字形的视觉表示。此方法返回的轮廓围绕每个单独字形的原点定位。- 参数:
-
glyphIndex
- 这个GlyphVector
中的索引 - 返回:
-
是此
GlyphVector
中指定glyphIndex
处字形的轮廓的Shape
。 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于 0 或大于等于此GlyphVector
中的字形数
-
getGlyphOutline
返回一个Shape
,其内部对应于此GlyphVector
中指定字形的视觉表示,偏移为 x、y。此方法返回的轮廓围绕每个单独字形的原点定位。- 参数:
-
glyphIndex
- 这个GlyphVector
中的索引 -
x
- 此GlyphVector
位置的 X 坐标 -
y
- 此GlyphVector
位置的 Y 坐标 - 返回:
-
是在指定坐标处呈现此
GlyphVector
中指定glyphIndex
处字形的轮廓的Shape
。 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于 0 或大于等于此GlyphVector
中的字形数 - 自:
- 1.4
-
getGlyphPosition
返回指定字形相对于此GlyphVector
原点的位置。如果glyphIndex
等于此GlyphVector
中的字形数,则此方法返回最后一个字形之后的位置。此位置用于定义整个GlyphVector
的前进。- 参数:
-
glyphIndex
- 这个GlyphVector
中的索引 - 返回:
-
是指定
glyphIndex
处字形的位置的Point2D
对象。 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于 0 或大于等于此GlyphVector
中的字形数 - 参见:
-
setGlyphPosition
设置此GlyphVector
中指定字形的位置。如果glyphIndex
等于此GlyphVector
中的字形数,则此方法设置最后一个字形之后的位置。此位置用于定义整个GlyphVector
的前进。- 参数:
-
glyphIndex
- 这个GlyphVector
中的索引 -
newPos
- 要设置为指定glyphIndex
处字形位置的Point2D
- 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于 0 或大于等于此GlyphVector
中的字形数 - 参见:
-
getGlyphTransform
返回此GlyphVector
中指定字形的变换。变换是相对于字形位置的。如果未应用任何特殊变换,则可以返回null
。null 返回表示一个恒等变换。- 参数:
-
glyphIndex
- 这个GlyphVector
中的索引 - 返回:
-
一个
AffineTransform
,表示指定glyphIndex
处的字形的变换。 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于0或大于等于此GlyphVector
中的字形数 - 参见:
-
setGlyphTransform
设置此GlyphVector
中指定字形的变换。变换是相对于字形位置的。对于newTX
的null
参数表示不对指定字形应用特殊变换。此方法可用于旋转、镜像、平移和缩放字形。添加变换可能导致性能变化。- 参数:
-
glyphIndex
- 这个GlyphVector
中的索引 -
newTX
-glyphIndex
处字形的新变换 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于0或大于等于此GlyphVector
中的字形数 - 参见:
-
getLayoutFlags
public int getLayoutFlags()返回描述GlyphVector
全局状态的标志。下面未描述的标志是保留的。默认实现对位置调整、变换、rtl和复杂标志返回0(表示false)。子类应重写此方法,并确保它正确描述GlyphVector
并与相关调用的结果相对应。- 返回:
- 包含描述状态的标志的int
- 自:
- 1.4
- 参见:
-
getGlyphPositions
public abstract float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn) 返回指定字形的字形位置数组。此方法用于处理字形位置时的便利性和性能。如果未传入数组,则会创建一个新数组。从位置零开始的偶数数组条目是编号为beginGlyphIndex + position/2
的字形的X坐标。从位置一开始的奇数数组条目是编号为beginGlyphIndex + (position-1)/2
的字形的Y坐标。如果beginGlyphIndex
等于此GlyphVector
中的字形数,则此方法获取最后一个字形之后的位置,并使用此位置定义整个GlyphVector
的前进。- 参数:
-
beginGlyphIndex
- 开始检索字形位置的索引 -
numEntries
- 要检索的字形数 -
positionReturn
- 接收字形位置并然后返回的数组 - 返回:
-
由
beginGlyphIndex
和numEntries
指定的字形位置数组 - 抛出:
-
IllegalArgumentException
- 如果numEntries
小于0 -
IndexOutOfBoundsException
- 如果beginGlyphIndex
小于0 -
IndexOutOfBoundsException
- 如果beginGlyphIndex
和numEntries
的总和大于此GlyphVector
中的字形数加一
-
getGlyphLogicalBounds
返回此GlyphVector
中指定字形的逻辑边界。这些逻辑边界共有四个边缘,其中两个边缘与字形的变换下的基线平行,另外两个边缘与相邻字形共享(如果存在)。此方法对于测试指定字形、在字形的前导或尾随边缘放置插入符号以及在指定字形周围绘制高亮区域很有用。- 参数:
-
glyphIndex
- 对应于要检索其逻辑边界的字形的GlyphVector
中的索引 - 返回:
-
一个
Shape
,表示指定glyphIndex
处字形的逻辑边界 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于0或大于等于此GlyphVector
中的字形数 - 参见:
-
getGlyphVisualBounds
返回GlyphVector
中指定字形的视觉边界。此方法返回的边界围绕每个单独字形的原点定位。- 参数:
-
glyphIndex
- 对应于要检索其视觉边界的字形的GlyphVector
中的索引 - 返回:
-
一个
Shape
,表示指定glyphIndex
处字形的视觉边界 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于0或大于等于此GlyphVector
中的字形数 - 参见:
-
getGlyphPixelBounds
在给定位置使用给定FontRenderContext
的Graphics
渲染此GlyphVector
时,返回索引处字形的像素边界。renderFRC不需要与此GlyphVector
的FontRenderContext
相同,可以为null。如果为null,则使用此GlyphVector
的FontRenderContext
。默认实现返回字形的视觉边界,偏移为x,y并四舍五入为下一个整数值,并忽略FRC。子类应重写此方法。- 参数:
-
index
- 字形的索引 -
renderFRC
-Graphics
的FontRenderContext
-
x
- 渲染此GlyphVector
的X位置 -
y
- 渲染此GlyphVector
的Y位置 - 返回:
-
一个包围受影响像素的
Rectangle
- 自:
- 1.4
-
getGlyphMetrics
返回此GlyphVector
中指定索引处字形的度量。- 参数:
-
glyphIndex
- 对应于要检索其度量的字形的GlyphVector
中的索引 - 返回:
-
一个
GlyphMetrics
对象,表示此GlyphVector
中指定glyphIndex
处字形的度量 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于0或大于等于此GlyphVector
中的字形数
-
getGlyphJustificationInfo
返回此GlyphVector
中指定索引处字形的调整信息。- 参数:
-
glyphIndex
- 对应于要检索其调整属性的字形的GlyphVector
中的索引 - 返回:
-
一个
GlyphJustificationInfo
对象,表示此GlyphVector
中指定glyphIndex
处字形的调整属性 - 抛出:
-
IndexOutOfBoundsException
- 如果glyphIndex
小于0或大于等于此GlyphVector
中的字形数
-
equals
测试指定的GlyphVector
是否与此GlyphVector
完全相等。- 参数:
-
set
- 要测试的指定GlyphVector
- 返回:
-
如果指定的
GlyphVector
等于此GlyphVector
,则返回true
;否则返回false
-