字体概念
原文: https://docs.oracle.com/javase/tutorial/2d/text/fontconcepts.html
本节向您介绍 Font
类,它支持详细的字体信息的规范和复杂的排版功能的使用。
Font
对象表示系统中可用字体面集合的字体实例。常见字体面的示例包括 Helvetica Bold 和 Courier Bold Italic。三个名称与 Font
对象关联:其逻辑名称,姓氏和字体名称:
Font
对象的逻辑名称是映射到物理字体的名称,该字体是系统上可用的特定字体之一。在 Java 中指定Font
时,请使用字体名称而不是逻辑名称。您可以通过调用getName
方法从Font
获取逻辑名称。要获取映射到系统上可用特定字体的逻辑名称列表,请调用 java.awt.GraphicsEnvironment.getAvailableFontFamilyNames 方法。有关详细信息,请参阅 物理和逻辑字体 。
Font
对象的系列名称是字体系列的名称,用于确定跨多个面的排版设计,例如 Helvetica。通过getFamily
方法检索系列名称。Font
对象的字体名称是指系统上安装的实际字体。这是指定字体时应使用的名称。它通常被称为字体名称。通过调用getFontName
检索字体名称。要确定系统上可用的字体,请调用java.awt.GraphicsEnvironment.getAllFonts
方法。
您可以通过 getAttributes
方法访问 Font
的相关信息。 Font
对象的属性包括其名称,大小,变换和字体功能,如重量和姿势。
LineMetrics
对象封装与 Font
相关的测量信息,例如其上升,下降和前导:
- Ascent 是从基线到上升线的距离。此距离表示大写字母的典型高度,但某些字符可能会延伸到上升线之上。
- _ 下降*是从基线到下降线的距离。大多数字符的最低点将落在下降范围内,但某些字符可能会延伸到下降线以下。
- _ 前导*是从下行线底部到下一行顶部的建议距离。
下图显示了上升线,基线和下降线的位置:
此信息用于沿一条线正确定位字符,以及相对于彼此定位线。您可以通过 getAscent
, getDescent
和 getLeading
方法访问这些线路指标。您还可以通过LineMetrics
类访问有关 Font
对象的高度,基线以及下划线和删除线特征的信息。