Module  java.desktop
软件包  java.awt.font

Class TextAttribute

  • All Implemented Interfaces:
    Serializable


    public final class TextAttribute
    extends AttributedCharacterIterator.Attribute
    TextAttribute类定义用于文本呈现的属性键和属性值。

    TextAttribute实例用作属性键中标识的属性FontTextLayoutAttributedCharacterIterator ,和其它类处理文本属性。 此类中定义的其他常量可用作属性值。

    对于每个文本属性,文档提供:

    • 其价值的类型,
    • 相关的预定义常量,如果有的话
    • 如果属性不存在,则为默认效果
    • 有效值如果有限制
    • 对效果的描述。

    • 属性的值必须始终是不可变的。
    • 在给定价值限制的情况下,该集合之外的任何值保留供将来使用; 该值将被视为默认值。
    • null被视为与默认值相同,并导致默认行为。
    • 如果该值不是正确的类型,该属性将被忽略。
    • 价值的身份并不重要,只有实际的价值。 例如, TextAttribute.WEIGHT_BOLDFloat.valueOf(2.0f)表示相同的WEIGHT
    • 属性类型的值Number (用于WEIGHTWIDTHPOSTURESIZEJUSTIFICATIONTRACKING )可沿其自然的范围内变化,并且不限制于预定义的常量。 Number.floatValue()用于从Number获取实际值。
    • 为值WEIGHTWIDTH ,和POSTURE由系统,它可以选择“最近的可用”字体或使用其他技术来近似用户的请求内插。

    属性摘要

    Key, value type, principal constants, and default value behavior of all TextAttributes Key Value Type Principal Constants Default Value FAMILY String See Font DIALOG, DIALOG_INPUT,
    SERIF, SANS_SERIF, and MONOSPACED. "Default" (use platform default) WEIGHT Number WEIGHT_REGULAR, WEIGHT_BOLD WEIGHT_REGULAR WIDTH Number WIDTH_CONDENSED, WIDTH_REGULAR,
    WIDTH_EXTENDED WIDTH_REGULAR POSTURE Number POSTURE_REGULAR, POSTURE_OBLIQUE POSTURE_REGULAR SIZE Number none 12.0 TRANSFORM TransformAttribute See TransformAttribute IDENTITY TransformAttribute.IDENTITY SUPERSCRIPT Integer SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB 0 (use the standard glyphs and metrics) FONT Font none null (do not override font resolution) CHAR_REPLACEMENT GraphicAttribute none null (draw text using font glyphs) FOREGROUND Paint none null (use current graphics paint) BACKGROUND Paint none null (do not render background) UNDERLINE Integer UNDERLINE_ON -1 (do not render underline) STRIKETHROUGH Boolean STRIKETHROUGH_ON false (do not render strikethrough) RUN_DIRECTION Boolean RUN_DIRECTION_LTR
    RUN_DIRECTION_RTL null (use Bidi standard default) BIDI_EMBEDDING Integer none 0 (use base line direction) JUSTIFICATION Number JUSTIFICATION_FULL JUSTIFICATION_FULL INPUT_METHOD_HIGHLIGHT InputMethodHighlight,
    Annotation (see class) null (do not apply input highlighting) INPUT_METHOD_UNDERLINE Integer UNDERLINE_LOW_ONE_PIXEL,
    UNDERLINE_LOW_TWO_PIXEL -1 (do not render underline) SWAP_COLORS Boolean SWAP_COLORS_ON false (do not swap colors) NUMERIC_SHAPING NumericShaper none null (do not shape digits) KERNING Integer KERNING_ON 0 (do not request kerning) LIGATURES Integer LIGATURES_ON 0 (do not form optional ligatures) TRACKING Number TRACKING_LOOSE, TRACKING_TIGHT 0 (do not add tracking)
    另请参见:
    FontTextLayoutAttributedCharacterIteratorSerialized Form
    • 字段详细信息

      • FAMILY

        public static final TextAttribute FAMILY
        字体名称的属性键。 值为String实例。 默认值为"Default" ,这将导致使用平台默认字体系列。

        所述Font类定义的逻辑字体名常量DIALOGDIALOG_INPUTSANS_SERIFSERIF ,和MONOSPACED

        这将将传递给name的值定义为Font构造函数。 逻辑和物理字体名称都是允许的。 如果未找到具有请求名称的字体,则使用默认字体。

        注意:这个属性不幸被命名,因为它指定了面部名称,而不仅仅是家庭。 因此,诸如“Lucida Sans Bold”这样的值将选择该面部存在。 但是,请注意,如果请求的脸部不存在,默认值将以常规权重使用。 名称中的“Bold”是脸部名称的一部分,而不是单独的请求,字体的重量是粗体。

      • WEIGHT_EXTRA_LIGHT

        public static final Float WEIGHT_EXTRA_LIGHT
        最轻的预定义重量。
        另请参见:
        WEIGHT
      • WEIGHT_LIGHT

        public static final Float WEIGHT_LIGHT
        标准重量轻。
        另请参见:
        WEIGHT
      • WEIGHT_DEMILIGHT

        public static final Float WEIGHT_DEMILIGHT
        中间重量在 WEIGHT_LIGHTWEIGHT_STANDARD之间。
        另请参见:
        WEIGHT
      • WEIGHT_REGULAR

        public static final Float WEIGHT_REGULAR
        标准重量。 这是WEIGHT的默认值。
        另请参见:
        WEIGHT
      • WEIGHT_SEMIBOLD

        public static final Float WEIGHT_SEMIBOLD
        WEIGHT_REGULAR中等重。
        另请参见:
        WEIGHT
      • WEIGHT_MEDIUM

        public static final Float WEIGHT_MEDIUM
        中间重量在 WEIGHT_REGULARWEIGHT_BOLD之间。
        另请参见:
        WEIGHT
      • WEIGHT_DEMIBOLD

        public static final Float WEIGHT_DEMIBOLD
        重量比中等重量比 WEIGHT_BOLD
        另请参见:
        WEIGHT
      • WEIGHT_BOLD

        public static final Float WEIGHT_BOLD
        标准大胆的体重。
        另请参见:
        WEIGHT
      • WEIGHT_HEAVY

        public static final Float WEIGHT_HEAVY
        WEIGHT_BOLD中等重。
        另请参见:
        WEIGHT
      • WEIGHT_EXTRABOLD

        public static final Float WEIGHT_EXTRABOLD
        重量过重
        另请参见:
        WEIGHT
      • WEIGHT_ULTRABOLD

        public static final Float WEIGHT_ULTRABOLD
        最重的预定义重量。
        另请参见:
        WEIGHT
      • WIDTH_CONDENSED

        public static final Float WIDTH_CONDENSED
        最浓缩的预定宽度。
        另请参见:
        WIDTH
      • WIDTH_SEMI_CONDENSED

        public static final Float WIDTH_SEMI_CONDENSED
        中等浓度的宽度。
        另请参见:
        WIDTH
      • WIDTH_REGULAR

        public static final Float WIDTH_REGULAR
        标准宽度。 这是WIDTH的默认值。
        另请参见:
        WIDTH
      • WIDTH_SEMI_EXTENDED

        public static final Float WIDTH_SEMI_EXTENDED
        中等宽度的宽度。
        另请参见:
        WIDTH
      • WIDTH_EXTENDED

        public static final Float WIDTH_EXTENDED
        最大的预定宽度。
        另请参见:
        WIDTH
      • POSTURE

        public static final TextAttribute POSTURE
        字体姿势的属性键。 值为Number实例。 默认值为POSTURE_REGULAR

        提供两个常数值, POSTURE_REGULARPOSTURE_OBLIQUE POSTURE_OBLIQUE对应于传递给Font构造函数的样式值Font.ITALIC

        该值大体上是字体的斜率,表示为上升。 正值正确。

        系统可以内插提供的值。

        这将影响Font.getItalicAngle返回的字体的斜体角度。

        另请参见:
        Font.getItalicAngle()
      • POSTURE_REGULAR

        public static final Float POSTURE_REGULAR
        标准姿势,直立。 这是POSTURE的默认值。
        另请参见:
        POSTURE
      • POSTURE_OBLIQUE

        public static final Float POSTURE_OBLIQUE
        标准斜体姿势。
        另请参见:
        POSTURE
      • SIZE

        public static final TextAttribute SIZE
        字体大小的属性键。 值是Number实例。 默认值为12pt。

        这对应于Font构造函数的size参数。

        非常大或小的尺寸将影响渲染性能,并且渲染系统可能不会以这些尺寸呈现文本。 负大小是非法的,并导致默认大小。

        请注意,具有2x变换的12pt字体的外观和度量可能与不具有变换的24点字体的外观和度量不同。

      • TRANSFORM

        public static final TextAttribute TRANSFORM
        用于转换字体的属性键。 值是TransformAttribute实例。 默认值为TransformAttribute.IDENTITY

        TransformAttribute类定义了常量IDENTITY

        这对应于转换为Font.deriveFont(AffineTransform) 由于该变换是可变的,并且TextAttribute值不能为,因此使用TransformAttribute包装类。

        主要目的是支持缩放和倾斜,尽管其他效果也是可能的。

        一些变换将导致基线被旋转和/或移位。 将文本和基线一起转换,使文本符合新的基线。 例如,对于水平基线上的文本,新的基线遵循通过变换的单位x向量的方向。 文本度量是根据这个新的基线测量的。 所以,例如,在其他方面相同的情况下,用旋转的TRANSFORM和未旋转的TRANSFORM呈现的文本将被测量为具有相同的上升,下降和提前。

        在样式文本中,每个此类运行的基准一个接一个对齐,以便为整个文本运行创建一个非线性基线。 有关详细信息,请参阅TextLayout.getLayoutPath()

        另请参见:
        TransformAttributeAffineTransform
      • SUPERSCRIPT

        public static final TextAttribute SUPERSCRIPT
        上标和下标的属性键。 值为Integer实例。 默认值为0,这意味着不使用上标或下标。

        提供两个常数值,参见SUPERSCRIPT_SUPERSUPERSCRIPT_SUB 这些值分别为1和-1。 更大幅度的数值定义了更高水平的上标或下标,例如,2对应于超上标3,超超上标,对于负值和下标也相似,高达7(或-7)的水平。 保留超出此范围的值; 行为依赖于平台。

        SUPERSCRIPT可以影响字体的上升和下降。 然而,上升和下降永远不会变成消极的。

      • SUPERSCRIPT_SUPER

        public static final Integer SUPERSCRIPT_SUPER
        标准上标。
        另请参见:
        SUPERSCRIPT
      • SUPERSCRIPT_SUB

        public static final Integer SUPERSCRIPT_SUB
        标准下标。
        另请参见:
        SUPERSCRIPT
      • FONT

        public static final TextAttribute FONT
        用于提供用于呈现文本的字体的属性键。 值为Font实例。 默认值为null,表示应该执行属性的正常分辨率为Font

        TextLayoutAttributedCharacterIteratorMapsTextAttributes 通常,所有属性都将被检查并用于选择和配置一个Font实例。 如果FONT属性存在,虽然其相关Font将被使用。 这为用户提供了将字体属性分辨率覆盖到Font ,或强制使用特定的Font实例。 这也允许用户指定的子类Font的情况下,一个Font可以被继承。

        FONT用于特殊情况,其中客户端已有Font实例,但仍需使用基于Map的API。 通常情况下,会有在没有其他属性Map除了FONT属性。 使用基于Map的API,常见的情况是单独指定所有属性,因此不需要或希望使用FONT

        但是,如果FONT和其他属性均存在于Map ,则绘制系统将将其中的属性合并在Font定义的属性。 此合并过程将TextAttributes分为两组。 一个组,“主要”组被认为是字体的选择和度量行为的基础。 这些属性是FAMILYWEIGHTWIDTHPOSTURESIZETRANSFORMSUPERSCRIPT ,并TRACKING 另一组,“次要”组由所有其他定义的属性组成,但本身不包括FONT

        为了生成新的Map ,首先从Font获取FONT属性,并将其所有属性提取为新的Map 那么只有来自原始Map辅助属性Map添加到新的Map 因此初级属性的值从所述单独来Font ,和次要属性的值与起源Font但是可以通过其他的值在被覆盖Map

        注意:基于Font's Map的构造函数和deriveFont方法不处理FONT属性,因为这些属性用于创建新的Font对象。 相反, Font.getFont(Map)应该用来处理FONT属性。

        另请参见:
        Font
      • CHAR_REPLACEMENT

        public static final TextAttribute CHAR_REPLACEMENT
        用于用户定义的字形显示的属性键代替字符的字体标准字形。 值是GraphicAttribute的实例。 默认值为null,表示应使用字体提供的标准字形。

        此属性用于为嵌入文本行的图形或其他组件保留空间。 当执行双向重新排序(见Bidi )时,需要在线内部的“内联”组件进行正确定位。 将使用提供的GraphicAttribute呈现每个字符(Unicode代码点)。 通常,应用此属性的字符应为\uFFFC

        GraphicAttribute确定文本的逻辑和视觉边界; 实际的字体值将被忽略。

        另请参见:
        GraphicAttribute
      • FOREGROUND

        public static final TextAttribute FOREGROUND
        用于渲染文本的颜色的属性键。 值是Paint实例。 默认值为null,表示在渲染时使用Paint设置的Graphics2D

        无论Graphics (或参见SWAP_COLORS )中设置的Paint值如何,将使用此Paint渲染字形。

        另请参见:
        PaintSWAP_COLORS
      • BACKGROUND

        public static final TextAttribute BACKGROUND
        用于渲染文本背景的绘画的属性键。 值是Paint实例。 默认值为null,表示不应呈现背景。

        文本的逻辑边界将使用此Paint填充,然后文本将在其上显示(但请参阅SWAP_COLORS )。

        如果需要,文本的可视界限被扩展为包括逻辑边界。 大纲不受影响。

        另请参见:
        PaintSWAP_COLORS
      • UNDERLINE

        public static final TextAttribute UNDERLINE
        下划线的属性键。 值是Integer实例。 默认值为-1,表示没有下划线。

        提供常数值UNDERLINE_ON

        下划线影响文本的视觉界限和轮廓。

      • UNDERLINE_ON

        public static final Integer UNDERLINE_ON
        标准下划线。
        另请参见:
        UNDERLINE
      • STRIKETHROUGH

        public static final TextAttribute STRIKETHROUGH
        删除线的属性键。 值为Boolean实例。 默认值为false ,这意味着没有删除线。

        提供常数值STRIKETHROUGH_ON

        删除线影响文本的视觉界限和大纲。

      • STRIKETHROUGH_ON

        public static final Boolean STRIKETHROUGH_ON
        一个删除线。
        另请参见:
        STRIKETHROUGH
      • RUN_DIRECTION

        public static final TextAttribute RUN_DIRECTION
        行的运行方向的属性键。 值为Boolean实例。 默认值为null,表示用于确定运行方向的标准Bidi算法应与值Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT一起使用。

        提供常数RUN_DIRECTION_RTLRUN_DIRECTION_LTR

        这将确定传递给Bidi构造函数的值,以选择段落中文本的主要方向。

        注意:此属性对于段落中的所有文本应具有相同的值,否则行为未确定。

        另请参见:
        Bidi
      • RUN_DIRECTION_LTR

        public static final Boolean RUN_DIRECTION_LTR
        从左到右的运行方向。
        另请参见:
        RUN_DIRECTION
      • RUN_DIRECTION_RTL

        public static final Boolean RUN_DIRECTION_RTL
        从右到左的运行方向。
        另请参见:
        RUN_DIRECTION
      • BIDI_EMBEDDING

        public static final TextAttribute BIDI_EMBEDDING
        文本嵌入级别的属性键。 值是Integer实例。 默认值为null ,表示双向算法在没有明确嵌入的情况下运行。

        正值1到61是嵌入级别,负值-1到-61是覆盖级别。 值0表示使用基线方向。 这些级别在嵌入级别数组中传递给Bidi构造函数。

        注意:当此属性出现在段落中的任何位置时,段落中的任何Unicode双向控制字符(RLO,LRO,RLE,LRE和PDF)将被忽略,并且不存在此属性的文本的运行被视为它是存在的,值为0。

        另请参见:
        Bidi
      • JUSTIFICATION

        public static final TextAttribute JUSTIFICATION
        段落的理由的属性关键。 值为Number实例。 默认值为1,表示对齐应使用提供的全部宽度。 值固定在范围[0..1]。

        提供常数JUSTIFICATION_FULLJUSTIFICATION_NONE

        指定在TextLayout请求对齐时使用的额外空间的分数。 例如,如果线是50点宽,并且被要求证明为70点,则0.75的值将用于占用剩余空间的四分之三或15点,使得所得到的线将为65点长度。

        注意:对于段落中的所有文本应该具有相同的值,否则行为是不确定的。

        另请参见:
        TextLayout.getJustifiedLayout(float)
      • JUSTIFICATION_FULL

        public static final Float JUSTIFICATION_FULL
        将线对齐为满请求宽度。 这是JUSTIFICATION的默认值。
        另请参见:
        JUSTIFICATION
      • JUSTIFICATION_NONE

        public static final Float JUSTIFICATION_NONE
        不要让线路有道理。
        另请参见:
        JUSTIFICATION
      • INPUT_METHOD_HIGHLIGHT

        public static final TextAttribute INPUT_METHOD_HIGHLIGHT
        输入法高亮样式的属性键。

        值为InputMethodHighlightAnnotation实例。 默认值为null ,这意味着在渲染之前不应该应用输入法样式。

        如果具有相同的文本相邻的运行InputMethodHighlight需要单独呈现时, InputMethodHighlights应包裹在Annotation实例。

        当输入法正在组合文本时,使用输入法高亮。 文本编辑组件应该保留它们,即使它们通常仅处理未被写入的文本,并使它们可用于绘图例程。

        另请参见:
        FontInputMethodHighlightAnnotation
      • UNDERLINE_LOW_ONE_PIXEL

        public static final Integer UNDERLINE_LOW_ONE_PIXEL
        单像素固体低下划线。
        从以下版本开始:
        1.3
        另请参见:
        INPUT_METHOD_UNDERLINE
      • UNDERLINE_LOW_TWO_PIXEL

        public static final Integer UNDERLINE_LOW_TWO_PIXEL
        双像素固体低下划线。
        从以下版本开始:
        1.3
        另请参见:
        INPUT_METHOD_UNDERLINE
      • UNDERLINE_LOW_DOTTED

        public static final Integer UNDERLINE_LOW_DOTTED
        单像素点下划线。
        从以下版本开始:
        1.3
        另请参见:
        INPUT_METHOD_UNDERLINE
      • UNDERLINE_LOW_GRAY

        public static final Integer UNDERLINE_LOW_GRAY
        双像素灰色低下划线。
        从以下版本开始:
        1.3
        另请参见:
        INPUT_METHOD_UNDERLINE
      • UNDERLINE_LOW_DASHED

        public static final Integer UNDERLINE_LOW_DASHED
        单像素虚线低下划线。
        从以下版本开始:
        1.3
        另请参见:
        INPUT_METHOD_UNDERLINE
      • SWAP_COLORS

        public static final TextAttribute SWAP_COLORS
        用于交换前景和背景的属性键Paints 值为Boolean实例。 默认值为false ,这意味着不要交换颜色。

        定义常数值SWAP_COLORS_ON

        如果设置了FOREGROUND属性,则其Paint将被用作背景,否则将使用Paint当前的Graphics 如果设置了BACKGROUND属性,则其Paint将被用作前台,否则系统将会找到与(已解析)背景的对比色,以使文本可见。

        另请参见:
        FOREGROUNDBACKGROUND
      • SWAP_COLORS_ON

        public static final Boolean SWAP_COLORS_ON
        交换前景和背景。
        从以下版本开始:
        1.3
        另请参见:
        SWAP_COLORS
      • NUMERIC_SHAPING

        public static final TextAttribute NUMERIC_SHAPING
        将ASCII十进制数字转换为其他十进制范围的属性键。 值是NumericShaper实例。 默认值为null ,这意味着不执行数字整形。

        当定义数字整形器时,文本首先由整形器处理,然后执行文本的任何其他分析。

        注意:对于段落中的所有文本应该具有相同的值,否则行为是不确定的。

        从以下版本开始:
        1.4
        另请参见:
        NumericShaper
      • KERNING

        public static final TextAttribute KERNING
        要求字距调整的属性键。 值为Integer实例。 默认值为0 ,不要求字距调整。

        提供常数值KERNING_ON

        单个字符的默认进度不适用于某些字符序列,例如“To”或“AWAY”。 没有字距,相邻的字符似乎被太多的空间分开。 字距会导致所选择的字符序列间隔不同以获得更令人愉悦的视觉外观。

        从以下版本开始:
        1.6
      • KERNING_ON

        public static final Integer KERNING_ON
        请求标准字距。
        从以下版本开始:
        1.6
        另请参见:
        KERNING
      • LIGATURES

        public static final TextAttribute LIGATURES
        启用可选连字的属性键。 值为Integer实例。 默认值为0 ,这意味着不要使用可选连字。

        定义常数值LIGATURES_ON

        始终启用写入系统所需的联结。

        从以下版本开始:
        1.6
      • LIGATURES_ON

        public static final Integer LIGATURES_ON
        请求标准可选连字。
        从以下版本开始:
        1.6
        另请参见:
        LIGATURES
      • TRACKING

        public static final TextAttribute TRACKING
        属性键控制跟踪。 值为Number实例。 默认值为0 ,这意味着没有额外的跟踪。

        提供常数值TRACKING_TIGHTTRACKING_LOOSE

        跟踪值乘以字体点大小,并通过字体转换,以确定添加到每个字形集群的前进的附加数量。 正的跟踪值将抑制可选结扎的形成。 跟踪值通常在-0.10.3之间; 超出该范围的值通常是不期望的。

        从以下版本开始:
        1.6
      • TRACKING_TIGHT

        public static final Float TRACKING_TIGHT
        执行紧跟踪。
        从以下版本开始:
        1.6
        另请参见:
        TRACKING
      • TRACKING_LOOSE

        public static final Float TRACKING_LOOSE
        执行松动跟踪。
        从以下版本开始:
        1.6
        另请参见:
        TRACKING
    • 构造方法详细信息

      • TextAttribute

        protected TextAttribute​(String name)
        构造具有指定名称的 TextAttribute
        参数
        name - 要分配给此 TextAttribute的属性名称