模块  java.desktop
软件包  java.awt.font

Class TextAttribute

  • 实现的所有接口
    Serializable

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

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

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

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

    • 属性的值必须始终是不可变的。
    • 在给出价值限制的情况下,该组之外的任何值都保留供将来使用; 该值将被视为默认值。
    • 处理值null与默认值相同,并产生默认行为。
    • 如果值不是正确的类型,则将忽略该属性。
    • 值的标识无关紧要,只有实际值。 例如, TextAttribute.WEIGHT_BOLDFloat.valueOf(2.0f)表示相同的WEIGHT
    • 属性类型的值Number (用于WEIGHTWIDTHPOSTURESIZEJUSTIFICATION ,和TRACKING )可沿其自然的范围内变化,并且不限制于预定义的常量。 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”之类的值将选择该面部(如果存在)。 但请注意,如果请求的面部不存在,则默认将使用常规权重。 名称中的“粗体”是面部名称的一部分,而不是单独的请求,即字体的粗体是粗体。

      • 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正常分辨率。

        TextLayoutAttributedCharacterIterator工作于Maps ,第TextAttributes 通常,会检查所有属性并用于选择和配置Font实例。 但是,如果存在FONT属性,则将使用其关联的Font 这为用户提供了一种将字体属性的分辨率覆盖到Font或强制使用特定的Font实例的方法。 这也允许用户在Font可以进行子类化的情况下指定子类Font

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

        但是,如果FONT和其他属性都存在于Map ,则渲染系统会将Font定义的属性与其他属性合并。 此合并过程将TextAttributes分为两组。 一个组,即“主要”组,被认为是字体选择和度量行为的基础。 这些属性是FAMILYWEIGHTWIDTHPOSTURESIZETRANSFORMSUPERSCRIPTTRACKING 另一组“辅助”组由所有其他已定义的属性组成,但FONT本身除外。

        以生成新的Map ,首先Font从得到FONT属性,和其所有属性提取到一个新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确定文本的逻辑和可视界限; 实际的Font值被忽略。

        另请参见:
        GraphicAttribute
      • FOREGROUND

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

        字形将使用渲染这个Paint的不管Paint的设定值Graphics (但见SWAP_COLORS )。

        另请参见:
        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 bidi控制字符(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上的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的属性名称