public abstract class FontMetrics extends Object implements Serializable
FontMetrics字体度量的类定义了一个对象,它封装了对一个特定的屏幕上特定的字体渲染信息。
注意subclassers:因为这些方法形成闭合,相互递归的循环,你必须照顾你实现在每个回路的方法至少有一个防止无限递归的当你的类的使用。特别是,以下是最小的建议的一组方法覆盖,以确保正确性和防止无限递归(虽然其他子集是同样可行的):
注意这些方法的实现效率低,所以他们通常是更有效的工具的具体实现重写。
当一个应用程序要求的地方,一个字符的位置(nullx, nully),字符放置,其参考点(显示伴随着图像的点)放在那个位置。参考点指定一个水平线称为字符的空基线。在正常的印刷字符的基线应对齐。
此外,在字体的每个字符都有一个空上升,空下降,和一个空推进宽度。上升是性格提升在基线之上的数量。下降是字符下降到基线以下的数量。先进的宽度表示位置在AWT将下一个字符。
一个字符或一个字符串数组也可以有一个上升,一个下降,和一个预先宽度。数组的上升是在数组中的任何字符的最大提升。该下降是在阵列中的任何字符的最大下降。预先宽度是字符数组中每个字符的预先宽度的总和。一个String提前沿String基线的距离。这个距离是应该用于居中或右对齐String宽度。
注意,一个String进步并不一定是其特征的进展测量隔离因为一个字符的宽度可以根据它的上下文变化的总和。例如,在阿拉伯文本中,一个字符的形状可以改变,以连接到其他字符。另外,在一些脚本,某些字符序列可以由一个单一的形状来表示,称为结扎。单独测量字符不占这些转换。
字体度量基线相对,这意味着他们通常是独立的旋转应用到字体(模可能网格暗示效应)。看到Font。
Font,
Serialized Form
| Modifier | Constructor and Description |
|---|---|
protected |
FontMetrics(Font font)
创造发现的高度和宽度对指定的
Font和个性符号,
Font信息的一种新的
FontMetrics对象。
|
| 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()
通过这
FontMetrics对象用来衡量文本的
FontRenderContext。
|
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 |
getLineMetrics(String str, Graphics context)
|
LineMetrics |
getLineMetrics(String str, int beginIndex, int limit, Graphics context)
|
int |
getMaxAdvance()
得到这
Font任何字符宽度的最大进步。
|
int |
getMaxAscent()
决定了
Font这个
FontMetrics对象描述的最大提升。
|
Rectangle2D |
getMaxCharBounds(Graphics context)
返回与指定
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)
返回的边界的字符索引指定的
CharacterIterator在指定的
Graphics语境。
|
Rectangle2D |
getStringBounds(String str, Graphics context)
返回在指定的
Graphics上下文的指定
String界限。
|
Rectangle2D |
getStringBounds(String str, int beginIndex, int limit, Graphics context)
返回在指定的
Graphics上下文的指定
String界限。
|
int[] |
getWidths()
在
Font的前256个字符宽度的进展。
|
boolean |
hasUniformLineMetrics()
检查是否有
Font均匀线指标。
|
int |
stringWidth(String str)
返回在这
Font显示指定的
String总进宽度。
|
String |
toString()
返回一个表示该
FontMetrics对象的值作为一个
String。
|
public Font getFont()
Font这个
FontMetrics对象描述。
FontMetrics对象描述的
Font。
public FontRenderContext getFontRenderContext()
FontMetrics对象用来衡量文本的
FontRenderContext。
值得注意的是,在这类以Graphics参数测量文本使用,Graphics对象的FontRenderContext方法,而不是这FontRenderContext
FontMetrics对象使用的
FontRenderContext。
public int getLeading()
Font这个
FontMetrics对象描述领导。标准引领,或行间距,是空间是一行文本和线下上升下降之间留量的逻辑。的高度度量计算,包括这个额外的空间。
Font领先。
getHeight(),
getAscent(),
getDescent()
public int getAscent()
Font这个
FontMetrics对象描述的字体上升。字体的提升是从字体的基线的字母数字字符的顶部的距离。在
Font某些字符可能延长字体上升线以上。
Font字体上升。
getMaxAscent()
public int getDescent()
Font这个
FontMetrics对象描述字体下降。字体的下降是从字体的基线的字母数字字符的底部的距离。在
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进步并不一定是其特点的进步的总和。
这种方法没有验证指定的字符是一个有效的Unicode代码点。调用者必须在必要时用Character.isValidCodePoint验证字符值。
codePoint -字符(Unicode代码点)进行测量
Font这个
FontMetrics描写对象指定字符宽度的进展。
charsWidth(char[], int, int),
stringWidth(String)
public int charWidth(char ch)
Font返回指定字符的推进宽度。进步是从最左边的点对字符的基线最右边的点的距离。注意,一个
String进步并不一定是其特点的进步的总和。
注:这种方法不能处理 supplementary characters。支持所有Unicode字符,包括补充字符,使用charWidth(int)方法。
ch -被测量的特征
Font这个
FontMetrics描写对象指定字符宽度的进展。
charsWidth(char[], int, int),
stringWidth(String)
public int stringWidth(String str)
Font显示指定的
String总进宽度。进步是从左边指向字符串的基线的最右点的距离。
注意,一个String进步并不一定是其特点的进步的总和。
str -
String进行测量
Font描述这
FontMetrics指定
String前进的宽度。
NullPointerException如果序列是空的。
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的开始字符数组中的偏移量
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。
data -字节被测阵列
off的起始偏移量数组中的字节
len -字节数从阵列测量
byte阵列在
Font这个
FontMetrics对象描述的子阵前进的宽度。
NullPointerException -如果
data是空的。
IndexOutOfBoundsException -如果
off和
len参数指标以外的
data字节数组的界限。
charsWidth(char[], int, int),
stringWidth(String)
public int[] getWidths()
Font的前256个字符的推进宽度。提前从左点对字符的基线最右边的点的距离。注意,一个
String进步并不一定是其特点的进步的总和。
Font数组的对象存储
FontMetrics描述人物的发展宽度。
public boolean hasUniformLineMetrics()
Font均匀线指标。一个复合字体可能包括几个不同的字体,以覆盖不同的字符集。在这种情况下,该
FontLineMetrics对象不统一。不同的字体可能有不同的上升、下降、度量等。这种信息有时是必要的在线测量和断线。
true如果字体有均匀线指标;
false否则。
Font.hasUniformLineMetrics()
public LineMetrics getLineMetrics(String str, Graphics context)
str -指定
String
context -指定
Graphics语境
LineMetrics对象创建指定
String和
Graphics语境。
Font.getLineMetrics(String, FontRenderContext)
public LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context)
str -指定
String
beginIndex -
str初始偏移
limit的结束偏移
str
context -指定
Graphics语境
LineMetrics对象创建指定
String和
Graphics语境。
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语境
LineMetrics对象创建指定的字符数组和
Graphics语境。
Font.getLineMetrics(char[], int, int, FontRenderContext)
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context)
ci -指定
CharacterIterator
beginIndex -
ci初始偏移
limit -
ci年底指数
context -指定
Graphics语境
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 -字符数组的初始偏移
limit的结束偏移的字符数组
context -指定
Graphics语境
Rectangle2D是指定的字符数组中指定的
Graphics语境的包围盒。
Font.getStringBounds(char[], int, int, FontRenderContext)
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, Graphics context)
ci -指定
CharacterIterator
beginIndex -
ci初始偏移
limit -
ci年底指数
context -指定
Graphics语境
Rectangle2D包围盒的字符索引指定的
CharacterIterator在指定的
Graphics语境。
Font.getStringBounds(CharacterIterator, int, int, FontRenderContext)
public Rectangle2D getMaxCharBounds(Graphics context)
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.