public abstract class FontMetrics extends Object implements Serializable
FontMetrics
类定义了一个字体度量对象,该对象封装了在特定屏幕上呈现特定字体的信息。
对于子类的注意事项 :由于许多这些方法形成闭合的相互递归循环,因此您必须注意在每个这样的循环中至少实现一个方法,以便在使用子类时防止无限递归。 特别地,以下是为了确保正确性和防止无限递归(尽管其他子集同样可行)覆盖的最小建议方法集合:
请注意,这些方法的实现效率低下,因此通常会使用更有效的工具包特定实现来覆盖它们。
当应用程序要求在位置( x , y )放置一个字符时,放置该字符使其参考点(如附图中的点所示)放在该位置。 参考点指定一个水平线,称为字符的基线 。 在正常打印中,字符的基线应对齐。
另外,字体中的每个字符都有上升 , 下降和前进宽度 。 上升是字符在基线上方上升的量。 下降是字符下降到基线以下的量。 前进宽度表示AWT应放置下一个字符的位置。
字符或字符串的数组也可以具有上升,下降和前进宽度。 数组的上升是数组中任何字符的最大上升。 下降是数组中任何字符的最大下降。 前进宽度是字符数组中每个字符的提前宽度的总和。 一的前进String
是沿着基线的距离String
。 该距离应为String的对中或右对齐使用的String
。
请注意, String
的提前String
是孤立测量的字符的前进的总和,因为字符的宽度可以根据其上下文而变化。 例如,在阿拉伯语文本中,字符的形状可以改变以连接到其他字符。 此外,在某些脚本中,某些字符序列可以由单个形状表示,称为连字 。 单独测量字符不会影响这些转换。
字体度量是基线相对的,这意味着它们通常与应用于字体的旋转无关(模可能的网格提示效果)。 见Font
。
Font
, Serialized Form
Modifier | Constructor and Description |
---|---|
protected |
FontMetrics(Font font)
创建一个新的
FontMetrics 用于找出的高度和宽度信息有关指定对象
Font 在和特定字符字形的
Font 。
|
Modifier and Type | Method and Description |
---|---|
int |
bytesWidth(byte[] data, int off, int len)
返回在此
Font 中显示指定字节数组的总进位宽度。
|
int |
charsWidth(char[] data, int off, int len)
返回在此
Font 中显示指定字符数组的总进位宽度。
|
int |
charWidth(char ch)
返回此
Font 中指定字符的前进宽度。
|
int |
charWidth(int codePoint)
返回此
Font 中指定字符的前进宽度。
|
int |
getAscent()
确定的
字体上升
Font 通过此描述
FontMetrics 对象。
|
int |
getDescent()
确定的
字体下降
Font 通过此描述
FontMetrics 对象。
|
Font |
getFont()
获取
Font 通过此描述
FontMetrics 对象。
|
FontRenderContext |
getFontRenderContext()
获取
FontRenderContext 使用此
FontMetrics 对象测量文本。
|
int |
getHeight()
获取此字体中文本行的标准高度。
|
int |
getLeading()
确定的
标准前导
Font 通过此描述
FontMetrics 对象。
|
LineMetrics |
getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context)
返回指定的 Graphics 上下文中指定字符数组的LineMetrics 对象。
|
LineMetrics |
getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context)
返回 LineMetrics 指定对象CharacterIterator 在指定的Graphics 上下文。
|
LineMetrics |
getLineMetrics(String str, Graphics context)
返回 LineMetrics 指定对象String 在指定的Graphics 上下文。
|
LineMetrics |
getLineMetrics(String str, int beginIndex, int limit, Graphics context)
返回 LineMetrics 指定对象String 在指定的Graphics 上下文。
|
int |
getMaxAdvance()
获取此
Font 中任何字符的最大提前宽度。
|
int |
getMaxAscent()
确定的最大上升
Font 通过此描述
FontMetrics 对象。
|
Rectangle2D |
getMaxCharBounds(Graphics context)
返回指定
Graphics 上下文中具有最大边界的字符的
Graphics 。
|
int |
getMaxDecent()
已弃用
截至JDK 1.1.1版,由
getMaxDescent() 。
|
int |
getMaxDescent()
确定的最大下降
Font 通过此描述
FontMetrics 对象。
|
Rectangle2D |
getStringBounds(char[] chars, int beginIndex, int limit, Graphics context)
返回在指定的
Graphics 上下文中指定的字符数组的范围。
|
Rectangle2D |
getStringBounds(CharacterIterator ci, int beginIndex, int limit, Graphics context)
返回在指定的
Graphics 上下文中指定的
CharacterIterator 中索引的字符的
Graphics 。
|
Rectangle2D |
getStringBounds(String str, Graphics context)
返回指定的范围
String 在指定的
Graphics 上下文。
|
Rectangle2D |
getStringBounds(String str, int beginIndex, int limit, Graphics context)
返回指定的范围
String 在指定的
Graphics 上下文。
|
int[] |
getWidths()
获取的前256个字符的超前宽度
Font 。
|
boolean |
hasUniformLineMetrics()
检查
Font 是否具有统一的线度量。
|
int |
stringWidth(String str)
返回显示指定的总的超前宽度
String 在此
Font 。
|
String |
toString()
返回此
FontMetrics 对象的值作为
String 。
|
public Font getFont()
Font
通过此描述
FontMetrics
对象。
Font
描述的这个
FontMetrics
对象。
public FontRenderContext getFontRenderContext()
FontRenderContext
使用此FontMetrics
对象测量文本。
注意,在这个类中的方法,其采取Graphics
使用参数测量文本FontRenderContext
是的Graphics
对象这一点,而不是FontRenderContext
FontRenderContext
被这个
FontMetrics
使用的对象。
public int getLeading()
Font
通过此描述FontMetrics
对象。
标准前导或行间距是在一行文本的下降和下一行的上升之间保留的逻辑空间量。
计算高度度量以包括这个额外的空间。
Font
。
getHeight()
,
getAscent()
,
getDescent()
public int getAscent()
Font
通过此描述FontMetrics
对象。
字体上升是从字体的基线到大多数字母数字字符顶部的距离。
Font中的Font
可能会在字体上升线上方延伸。
Font
。
getMaxAscent()
public int getDescent()
Font
通过此描述FontMetrics
对象。
字体下降是与字体的基线到具有下降沿的大多数字母数字字符的底部的距离。
Font中的Font
可能会延伸到字体下降行以下。
Font
。
getMaxDescent()
public int getHeight()
getLeading()
,
getAscent()
,
getDescent()
public int getMaxAscent()
Font
通过此描述FontMetrics
对象。
没有任何字符比字体的基线高于此高度。
Font
。
getAscent()
public int getMaxDescent()
Font
通过此描述FontMetrics
对象。
没有任何字符比字体的基线高出这个高度。
Font
。
getDescent()
@Deprecated public int getMaxDecent()
getMaxDescent()
。
Font
。
getMaxDescent()
public int getMaxAdvance()
Font
中任何字符的最大提前宽度。
提前是从最左点到弦线基线最右点的距离。
String
的提前并不一定是其字符的进步之和。
Font
,
-1
。
public int charWidth(int codePoint)
Font
中指定字符的前进宽度。
提前是从角色基线的最左点到最右点的距离。
请注意,一个String
的提前String
是其字符的进步的总和。
此方法不会将指定的字符验证为有效的Unicode代码点。 如果需要,来电者必须使用Character.isValidCodePoint
验证字符值。
codePoint
- 要测量的字符(Unicode代码点)
Font
字符的前进宽度由此
FontMetrics
对象描述。
charsWidth(char[], int, int)
,
stringWidth(String)
public int charWidth(char ch)
Font
中指定字符的前进宽度。
提前是从角色基线的最左点到最右点的距离。
请注意, String
的预付款String
是其字符预付款的总和。
注意:此方法无法处理supplementary characters 。 要支持所有Unicode字符(包括补充字符),请使用charWidth(int)
方法。
ch
- 要测量的字符
Font
通过此描述
FontMetrics
对象。
charsWidth(char[], int, int)
,
stringWidth(String)
public int stringWidth(String str)
String
在此Font
。
提前是从最左点到弦线基线最右点的距离。
请注意, String
的提前String
是其字符的进步的总和。
str
- 要测量的
String
String
的
Font
的前进宽度由此
FontMetrics
。
NullPointerException
- 如果str为空。
bytesWidth(byte[], int, int)
,
charsWidth(char[], int, int)
,
getStringBounds(String, Graphics)
public int charsWidth(char[] data, int off, int len)
Font
中显示指定字符数组的总进位宽度。
提前是从最左点到弦线基线最右点的距离。
String
的进步不一定是其角色进步的总和。
这相当于在指定范围内测量一个String
的字符。
data
- 要测量的字符数组
off
- 数组中
off
的起始偏移量
len
- 要从数组中测量的字符数
char
数组的子阵列的前进宽度由此
FontMetrics
对象描述的字体。
NullPointerException
- 如果
data
为空。
IndexOutOfBoundsException
- 如果
off
和
len
参数的索引字符在
data
数组的范围之外。
charWidth(int)
,
charWidth(char)
,
bytesWidth(byte[], int, int)
,
stringWidth(String)
public int bytesWidth(byte[] data, int off, int len)
Font
中显示指定字节数组的总进位宽度。
提前是从最左点到弦线基线最右点的距离。
一个String
的提前String
是其字符的进步的总和。
这相当于在指定范围内测量一个String
个字符。
data
- 要测量的字节数组
off
- 数组中字节的起始偏移量
len
- 要从数组中测量的字节数
byte
在阵列
Font
通过此描述
FontMetrics
对象。
NullPointerException
- 如果
data
为空。
IndexOutOfBoundsException
- 如果
off
和
len
参数的索引字节在
data
数组的范围之外。
charsWidth(char[], int, int)
,
stringWidth(String)
public int[] getWidths()
Font
。
提前是从角色基线的最左点到最右点的距离。
请注意, String
的提前String
是其字符的进步的总和。
Font
通过此描述
FontMetrics
对象。
public boolean hasUniformLineMetrics()
Font
是否具有统一的线度量。
复合字体可以由几种不同的字体组成,以覆盖各种字符集。
在这种情况下, FontLineMetrics
对象不统一。
不同的字体可能有不同的上升,下降,指标等。
此信息有时是线测量和断线所必需的。
true
如果字体具有统一的线度量;
false
否则。
Font.hasUniformLineMetrics()
public LineMetrics getLineMetrics(String str, Graphics context)
LineMetrics
指定对象String
在指定的Graphics
上下文。
str
- 指定的
String
context
- 指定的
Graphics
上下文
String
和
Graphics
上下文创建的
LineMetrics
对象。
Font.getLineMetrics(String, FontRenderContext)
public LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context)
LineMetrics
指定对象String
在指定的Graphics
上下文。
str
- 指定的
String
beginIndex
- 初始偏移量为
str
limit
- 最终的偏移量为
str
context
- 指定的
Graphics
上下文
String
和
Graphics
上下文创建的
LineMetrics
对象。
Font.getLineMetrics(String, int, int, FontRenderContext)
public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定字符数组的LineMetrics
对象。
chars
- 指定的字符数组
beginIndex
- 初始偏移量为
chars
limit
- 最终的偏移量为
chars
context
- 指定的
Graphics
上下文
Graphics
上下文创建的
LineMetrics
对象。
Font.getLineMetrics(char[], int, int, FontRenderContext)
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context)
LineMetrics
指定对象CharacterIterator
在指定的Graphics
上下文。
ci
- 指定的
CharacterIterator
beginIndex
- 初始偏移量在
ci
limit
- 最终指数为
ci
context
- 指定的
Graphics
上下文
LineMetrics
参数创建的
LineMetrics
对象。
Font.getLineMetrics(CharacterIterator, int, int, FontRenderContext)
public Rectangle2D getStringBounds(String str, Graphics context)
str
- 指定的
String
context
- 指定的
Graphics
上下文
Rectangle2D
,它是指定的边界框String
在指定Graphics
上下文。
Font.getStringBounds(String, FontRenderContext)
public Rectangle2D getStringBounds(String str, int beginIndex, int limit, Graphics context)
str
- 指定的
String
beginIndex
-开始时的偏移
str
limit
- 最终的偏移量为
str
context
- 指定的
Graphics
上下文
Rectangle2D
,它是指定的边界框
String
在指定
Graphics
上下文。
Font.getStringBounds(String, int, int, FontRenderContext)
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定的字符数组的范围。
边界用于布局使用String
的字符数组创建的beginIndex
和limit
。
注意:返回的边界在基线相对坐标(见class notes
)。
chars
- 一个字符数组
beginIndex
-
beginIndex
数组的初始偏移量
limit
-
limit
数组的结束偏移量
context
- 指定的
Graphics
上下文
Rectangle2D
是在指定的
Graphics
上下文中指定的字符数组的边界框。
Font.getStringBounds(char[], int, int, FontRenderContext)
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定的CharacterIterator
中索引的字符的Graphics
。
注意:返回的边界在基线相对坐标(见class notes
)。
ci
- 指定的
CharacterIterator
beginIndex
- 初始偏移量在
ci
limit
- 最终指数为
ci
context
- 指定的
Graphics
上下文
Rectangle2D
这是在指定的
Graphics
上下文中指定的
CharacterIterator
中索引的字符的
Graphics
。
Font.getStringBounds(CharacterIterator, int, int, FontRenderContext)
public Rectangle2D getMaxCharBounds(Graphics context)
Graphics
上下文中具有最大边界的字符的
Graphics
。
context
- 指定的
Graphics
上下文
Rectangle2D
是具有最大边界的字符的边框。
Font.getMaxCharBounds(FontRenderContext)
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.