java.lang.Object java.awt.font.GlyphVector
GlyphVector
对象是一个字形的集合,包含在转换坐标空间中放置每个字形的几何信息,该坐标空间对应于最终要显示 GlyphVector
的设备。
GlyphVector
不尝试对它包含的字形序列进行任何解释。序列中相邻字形之间的关系只用于确定在可视坐标空间中的字形放置。
GlyphVector
的实例由 Font
创建。
在一个可以对文本的中间表示形式进行缓存的文本处理应用程序中,将字符的可视化表示形式呈现给用户最快的方法是,创建并随后缓存在呈现期间使用的 GlyphVector
。
GlyphVector
只与一个 Font
关联,可以提供仅与此 Font
相关的有用数据。另外,从 GlyphVector
获得的规格通常不是几何上可缩放的,因为像素化和间隔与 Font
中的网格适应算法相关。为了便于精确测量 GlyphVector
及其分量字形,在创建 GlyphVector
时必须指定缩放转换、anti-alias 模式和 fractional metrics 模式。这些特性可以从目标设备派生得到。
对于 GlyphVector
中的每个字形,您可以获得:
GlyphVector
上下文中的字形规格。在不同的转换、具有指定呈现提示的应用程序和 GlyphVector
内字形的具体实例情况下,字形的规格可能也不相同。 改变创建 GlyphVector
所使用的数据不会改变 GlyphVector
的状态。
该类提供了一些方法来调整 GlyphVector
内字形位置。这些方法最适合为显示字形而正在执行调整操作的应用程序。
该类提供了一些方法来转换 GlyphVector
中各个字形。这些方法主要用于特殊效果。
该类提供了一些方法来返回整个 GlyphVector
或 GlyphVector
中各个字形的可视的、逻辑的和像素的边界。
该类还提供了一些方法来返回 GlyphVector
和 GlyphVector
中各个字形的 Shape
。
Font
,
GlyphMetrics
,
TextLayout
字段摘要 | |
---|---|
static int |
FLAG_COMPLEX_GLYPHS 与 getLayoutFlags 一起使用的标志,指示此 GlyphVector 具有从字形到字符的复杂映射关系(此映射并非严格按照与排列方向匹配的升序或降序顺序将字形一一映射到字符)。 |
static int |
FLAG_HAS_POSITION_ADJUSTMENTS 与 getLayoutFlags 一起使用的标志,指示此 GlyphVector 调整了位置。 |
static int |
FLAG_HAS_TRANSFORMS 与 getLayoutFlags 一起使用的标志,指示此 GlyphVector 的每个字形都有转换。 |
static int |
FLAG_MASK getLayoutFlags 支持标志的掩码。 |
static int |
FLAG_RUN_RTL 与 getLayoutFlags 一起使用的标志,指示此 GlyphVector 具有从右到左的排列方向。 |
构造方法摘要 | |
---|---|
GlyphVector() |
方法摘要 | |
---|---|
abstract boolean |
equals(GlyphVector set) 测试指定的 GlyphVector 是否恰好等于此 GlyphVector 。 |
abstract Font |
getFont() 返回与此 GlyphVector 关联的 Font 。 |
abstract FontRenderContext |
getFontRenderContext() 返回与此 GlyphVector 关联的 FontRenderContext 。 |
int |
getGlyphCharIndex(int glyphIndex) 返回指定字形的字符索引。 |
int[] |
getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn) 返回指定字形的字符索引。 |
abstract int |
getGlyphCode(int glyphIndex) 返回指定字形的 glyphcode。 |
abstract int[] |
getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn) 返回指定字形的 glyphcode 数组。 |
abstract GlyphJustificationInfo |
getGlyphJustificationInfo(int glyphIndex) 返回此 GlyphVector 中指定索引处的字形调整信息。 |
abstract Shape |
getGlyphLogicalBounds(int glyphIndex) 返回此 GlyphVector 中指定字形的逻辑边界。 |
abstract GlyphMetrics |
getGlyphMetrics(int glyphIndex) 返回此 GlyphVector 中指定索引处的字形规格。 |
abstract Shape |
getGlyphOutline(int glyphIndex) 返回其内部区域与此 GlyphVector 中指定字形的可视表示形式对应的 Shape 。 |
Shape |
getGlyphOutline(int glyphIndex, float x, float y) 返回一个 Shape ,其内部区域与此 GlyphVector 中指定字形的可视表示形式对应,并偏移到 x、y。 |
Rectangle |
getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y) 返回当此 GlyphVector 在 Graphics 中以给定 FontRenderContext 在给定位置呈现时,index 处字形的像素边界。 |
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 |
getLayoutFlags() 返回描述该 GlyphVector 全局状态的标志。 |
abstract Rectangle2D |
getLogicalBounds() 返回此 GlyphVector 的逻辑边界。 |
abstract int |
getNumGlyphs() 返回此 GlyphVector 中的字形数。 |
abstract Shape |
getOutline() 返回其内部区域与此 GlyphVector 的可视表示形式对应的 Shape 。 |
abstract Shape |
getOutline(float x, float y) 返回在 x、y 处呈现时,其内部区域与此 GlyphVector 的可视表示形式对应的 Shape 。 |
Rectangle |
getPixelBounds(FontRenderContext renderFRC, float x, float y) 返回此 GlyphVector 在图形中以给定 FontRenderContext 在给定位置处呈现时的像素边界。 |
abstract Rectangle2D |
getVisualBounds() 返回此 GlyphVector 的可视边界,可视边界是此 GlyphVector 轮廓的边界框。 |
abstract void |
performDefaultLayout() 为此 GlyphVector 中的每个字形分配默认位置。 |
abstract void |
setGlyphPosition(int glyphIndex, Point2D newPos) 设置此 GlyphVector 中的指定字形位置。 |
abstract void |
setGlyphTransform(int glyphIndex, AffineTransform newTX) 设置此 GlyphVector 中指定字形的转换。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final int FLAG_HAS_TRANSFORMS
GlyphVector
的每个字形都有转换。
public static final int FLAG_HAS_POSITION_ADJUSTMENTS
GlyphVector
调整了位置。该标志为 true 时,字形位置与该字形累加的默认 advance 不匹配(例如,已完成字距调整)。
public static final int FLAG_RUN_RTL
GlyphVector
具有从右到左的排列方向。这是指字形到字符的映射关系,并不意味着该字形的可视位置一定要按此顺序,但通常如此。
public static final int FLAG_COMPLEX_GLYPHS
GlyphVector
具有从字形到字符的复杂映射关系(此映射并非严格按照与排列方向匹配的升序或降序顺序将字形一一映射到字符)。
public static final int FLAG_MASK
构造方法详细信息 |
---|
public GlyphVector()
方法详细信息 |
---|
public abstract Font getFont()
GlyphVector
关联的
Font
。
GlyphVector
的
Font
。
Font
public abstract FontRenderContext getFontRenderContext()
GlyphVector
关联的
FontRenderContext
。
GlyphVector
的
FontRenderContext
。
FontRenderContext
,
Font
public abstract void performDefaultLayout()
GlyphVector
中的每个字形分配默认位置。这会破坏此
GlyphVector
初始布局期间所生成的信息。
public abstract int getNumGlyphs()
GlyphVector
中的字形数。
GlyphVector
中的字形数。
public abstract int getGlyphCode(int glyphIndex)
GlyphVector
的
Font
对象之外,此返回值对其他对象均无意义。
glyphIndex
- 此
GlyphVector
中的索引,它与从中检索 glyphcode 的字形对应。
glyphIndex
处字形的 glyphcode。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
public abstract int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn)
GlyphVector
的
Font
之外,此返回值的内容对其他对象均无意义。处理 glyphcode 时,此方法使用便捷,性能优越。如果没有数组传入,则创建新的数组。
beginGlyphIndex
- 此
GlyphVector
中的索引,从此处开始检索 glyphcode
numEntries
- 要检索的 glyphcode 数
codeReturn
- 接收 glyphcode 然后返回的数组
IllegalArgumentException
- 如果
numEntries
小于 0
IndexOutOfBoundsException
- 如果
beginGlyphIndex
小于 0
IndexOutOfBoundsException
- 如果
beginGlyphIndex
与
numEntries
的和大于此
GlyphVector
中的字形数
public int getGlyphCharIndex(int glyphIndex)
glyphIndex
- 该字形的索引
public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn)
beginGlyphIndex
- 第一个字形的索引
numEntries
- 字形索引数
codeReturn
- 接收返回字符索引的数组
public abstract Rectangle2D getLogicalBounds()
GlyphVector
的逻辑边界。相对于视觉相邻的
GlyphVector
对象定位此
GlyphVector
时使用此方法。
Rectangle2D
,它是此
GlyphVector
的逻辑边界。
public abstract Rectangle2D getVisualBounds()
GlyphVector
的可视边界,可视边界是此
GlyphVector
轮廓的边界框。由于像素的光栅化和对齐方式,此框可能没有包围受呈现此
GlyphVector
影响的所有像素。
Rectangle2D
,它是此
GlyphVector
的边界框。
public Rectangle getPixelBounds(FontRenderContext renderFRC, float x, float y)
GlyphVector
在图形中以给定
FontRenderContext
在给定位置处呈现时的像素边界。renderFRC 无需与此
GlyphVector
的
FontRenderContext
相同,可以为 null。如果为 null,则使用此
GlyphVector
的
FontRenderContext
。默认实现返回可视边界、x 和 y 的偏移量,并舍入为下一个整数值(即返回包含可视边界的整数矩形),并忽略 FRC。子类应重写此方法。
renderFRC
-
Graphics
的
FontRenderContext
。
x
- 呈现此
GlyphVector
处的 x 坐标。
y
- 呈现此
GlyphVector
处的 y 坐标。
Rectangle
。
public abstract Shape getOutline()
GlyphVector
的可视表示形式对应的
Shape
。
GlyphVector
轮廓的
Shape
。
public abstract Shape getOutline(float x, float y)
GlyphVector
的可视表示形式对应的
Shape
。
x
- 此
GlyphVector
的 X 坐标。
y
- 此
GlyphVector
的 Y 坐标。
GlyphVector
轮廓的
Shape
。
public abstract Shape getGlyphOutline(int glyphIndex)
GlyphVector
中指定字形的可视表示形式对应的
Shape
。此方法返回的轮廓位于各个字形的原点周围。
glyphIndex
- 此
GlyphVector
的索引
Shape
,它是该
GlyphVector
中指定
glyphIndex
处的字形轮廓。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
public Shape getGlyphOutline(int glyphIndex, float x, float y)
Shape
,其内部区域与此
GlyphVector
中指定字形的可视表示形式对应,并偏移到 x、y。此方法返回的轮廓位于各个字形的原点周围。
glyphIndex
- 此
GlyphVector
的索引
x
- 此
GlyphVector
的坐标的 X 坐标
y
- 此
GlyphVector
的坐标的 Y 坐标
Shape
,它是在指定的坐标处呈现时,此
GlyphVector
中指定
glyphIndex
处的字形轮廓。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
public abstract Point2D getGlyphPosition(int glyphIndex)
GlyphVector
原点对应的指定字形的位置。如果
glyphIndex
等于此
GlyphVector
中的字形数,则此方法返回最后一个字形后的位置。此位置用于定义整个
GlyphVector
的 advance。
glyphIndex
- 此
GlyphVector
的索引
glyphIndex
处字形位置的
Point2D
对象。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于此
GlyphVector
中的字形数
setGlyphPosition(int, java.awt.geom.Point2D)
public abstract void setGlyphPosition(int glyphIndex, Point2D newPos)
GlyphVector
中的指定字形位置。如果
glyphIndex
等于此
GlyphVector
中的字形数,则此方法设置最后一个字形后的位置。此位置用于定义整个
GlyphVector
的 advance。
glyphIndex
- 此
GlyphVector
的索引
newPos
- 定位指定
glyphIndex
处字形的
Point2D
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或大于此
GlyphVector
中的字形数
getGlyphPosition(int)
public abstract AffineTransform getGlyphTransform(int glyphIndex)
GlyphVector
中指定字形的转换。该转换与字形位置相关。如果未应用特殊转换,则返回
null
。返回 null 指示恒等转换。
glyphIndex
- 此
GlyphVector
的索引
glyphIndex
处字形的
AffineTransform
。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
setGlyphTransform(int, java.awt.geom.AffineTransform)
public abstract void setGlyphTransform(int glyphIndex, AffineTransform newTX)
GlyphVector
中指定字形的转换。该转换与字形位置相关。
newTX
参数为
null
表示对指定字形没有应用特殊转换。此方法可以用于旋转、镜像、平移和缩放字形。添加转换可以明显地影响性能。
glyphIndex
- 此
GlyphVector
的索引
newTX
-
glyphIndex
处的字形的新转换
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
getGlyphTransform(int)
public int getLayoutFlags()
FLAG_HAS_POSITION_ADJUSTMENTS
,
FLAG_HAS_TRANSFORMS
,
FLAG_RUN_RTL
,
FLAG_COMPLEX_GLYPHS
,
FLAG_MASK
public abstract float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn)
beginGlyphIndex + position/2
的字形 X 坐标。从位置 1 开始的奇数数组项是编号为
beginGlyphIndex + (position-1)/2
的字形 Y 坐标。如果
beginGlyphIndex
等于此
GlyphVector
中的字形数,则此方法会获取最后一个字形后的位置,此位置用于定义整个
GlyphVector
的 advance。
beginGlyphIndex
- 开始检索字形位置的索引
numEntries
- 要检索的字形数
positionReturn
- 接收字形位置然后返回的数组。
beginGlyphIndex
和
numEntries
指定的字形位置的数组。
IllegalArgumentException
- 如果
numEntries
小于 0
IndexOutOfBoundsException
- 如果
beginGlyphIndex
小于 0
IndexOutOfBoundsException
- 如果
beginGlyphIndex
与
numEntries
的和大于此
GlyphVector
中的字形数加 1
public abstract Shape getGlyphLogicalBounds(int glyphIndex)
GlyphVector
中指定字形的逻辑边界。这些逻辑边界总共有四个边,两个边平行于该字形转换的基线,另外两个边与相邻字形(如果存在)共用。此方法常用于指定字形的命中测试、插入符在开始边和尾边的定位,以及在指定字形周围绘制一个高亮显示区域。
glyphIndex
- 此
GlyphVector
的索引,它与从中检索其逻辑边界的字形对应
Shape
,表示指定
glyphIndex
处的字形逻辑边界。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
getGlyphVisualBounds(int)
public abstract Shape getGlyphVisualBounds(int glyphIndex)
GlyphVector
中指定字形的可视边界。此方法返回的边界位于各个字形的原点周围。
glyphIndex
- 此
GlyphVector
的索引,它与从中检索其可视边界的字形对应
Shape
,表示指定
GlyphVector
处的字形可视边界。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
getGlyphLogicalBounds(int)
public Rectangle getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y)
GlyphVector
在
Graphics
中以给定
FontRenderContext
在给定位置呈现时,index 处字形的像素边界。 renderFRC 无需与此
GlyphVector
的
FontRenderContext
相同,可以为 null。如果为 null,则使用此
GlyphVector
的
FontRenderContext
。默认的实现会返回该字形的可视边界、x 和 y 的偏移量,以及舍入到下一个整数值,并忽略 FRC。子类应重写此方法。
index
- 该字形的索引。
renderFRC
-
Graphics
的
FontRenderContext
。
x
- 呈现此
GlyphVector
的 X 坐标。
y
- 呈现此
GlyphVector
的 Y 坐标。
Rectangle
。
public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
GlyphVector
中指定索引处的字形规格。
glyphIndex
- 此
GlyphVector
的索引,它与从中检索其规格的字形对应
GlyphMetrics
对象,表示此
GlyphVector
中指定
glyphIndex
处的字形规格。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
GlyphVector
中指定索引处的字形调整信息。
glyphIndex
- 此
GlyphVector
的索引,它与从中检索其调整属性的字形对应
GlyphJustificationInfo
对象,表示此
GlyphVector
中指定
glyphIndex
处的字形调整属性。
IndexOutOfBoundsException
- 如果
glyphIndex
小于 0,或者大于等于此
GlyphVector
中的字形数
public abstract boolean equals(GlyphVector set)
GlyphVector
是否恰好等于此
GlyphVector
。
set
- 要测试的指定
GlyphVector
GlyphVector
等于此
GlyphVector
,则返回
true
;否则返回
false
。