Text
Java 2D API 具有各种文本呈现功能,包括用于呈现字符串 的方法以及用于设置字体属性和执行文本布局的整个类。
如果只想绘制静态文本字符串,则是使用drawString
方法直接通过Graphics
类呈现它的最直接方法。要指定字体,请使用Graphics
类的setFont
方法。
如果您想实现自己的文本编辑例程,或者需要比文本组件提供的更多的文本布局控制权,则可以使用java.awt.font
包中的 Java 2D 文本布局类。
Fonts
字体用来表示字符串 中字符的形状称为字形。特定字符或字符组合可能表示为一个或多个字形。例如,á可能由两个字形表示,而连字* fi *可能由单个字形表示。
字体可以看作是字形的集合。单个字体可能具有很多* faces ,例如斜体和常规字体。字体中的所有面孔都具有相似的打印 Feature,可以被识别为同一 family 的成员。换句话说,具有特定样式的字形集合形成 font face 。字体的集合构成 font family *。字体系列的集合形成系统上可用的字体集。
使用 Java 2D API 时,可以使用Font
实例指定字体。您可以通过调用静态方法GraphicsEnvironment.getLocalGraphicsEnvironment
然后查询返回的GraphicsEnvironment
来确定可用的字体。 getAllFonts
方法返回一个数组,该数组包含系统上所有可用字体的Font
实例。 getAvailableFontFamilyNames
方法返回可用字体系列的列表。
Text Layout
在显示文本之前,必须先进行布局,以便在适当位置用适当的字形表示字符。以下是两种用于 管理 文本布局的 Java 2D 机制:
-
TextLayout
类 管理 文本布局,突出显示和匹配检测。TextLayout
提供的功能可处理最常见的情况,包括带有混合字体,混合语言和 Double 向文本的字符串。 -
您可以使用
Font
类创建自己的GlyphVector
对象,然后通过Graphics2D
类渲染每个GlyphVector
对象。因此,您可以完全控制文本的形状和位置。
Literals 提示
Java 2D API 使您可以使用* rendering hints *来控制形状和文本渲染的质量。呈现提示由java.awt.RenderingHints
类封装。
应用于文本时,此功能用于抗锯齿(也称为平滑边缘)。例如,使用KEY_TEXT_ANTIALIASING
提示可以将文本的抗锯齿与其他形状的抗锯齿分开控制。要了解有关渲染提示的更多信息,请参见控制渲染质量类。