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提示可以将文本的抗锯齿与其他形状的抗锯齿分开控制。要了解有关渲染提示的更多信息,请参见控制渲染质量类。