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.