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.