- 所有已实现的接口:
Serializable
TextAttribute
类定义用于文本呈现的属性键和属性值。
TextAttribute
实例用作属性键来标识 Font
、TextLayout
、AttributedCharacterIterator
和其他处理文本属性的类中的属性。此类中定义的其他常量可以用作属性值。
对于每个文本属性,文档提供:
- 其值的类型,
- 相关的预定义常量,如果有的话
- 属性不存在时的默认效果
- 有限制时的有效值
- 效果的描述。
值
- 属性的值必须始终是不可变的。
- 在给出值限制的情况下,该集合之外的任何值都保留供将来使用;该值将被视为默认值。
- 值
null
被视为与默认值相同并导致默认行为。 - 如果值不是正确的类型,则该属性将被忽略。
- 值的身份无关紧要,只有实际值。例如,
TextAttribute.WEIGHT_BOLD
和Float.valueOf(2.0f)
表示相同的WEIGHT
。 Number
类型的属性值(用于WEIGHT
、WIDTH
、POSTURE
、SIZE
、JUSTIFICATION
和TRACKING
)可以沿着它们的自然范围变化并且不限于预定义常量。Number.floatValue()
用于从Number
获取实际值。WEIGHT
、WIDTH
和POSTURE
的值由系统内插,系统可以选择“最接近的可用”字体或使用其他技术来近似用户的请求。
属性总结
Key | 值类型 | Principal 常量 | 默认值 |
---|---|---|---|
FAMILY |
String | 请参见字体 DIALOG 、DIALOG_INPUT 、SERIF 、SANS_SERIF 和 MONOSPACED 。 |
“默认”(使用平台默认值) |
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 | 没有任何 | 12.0 |
TRANSFORM |
TransformAttribute |
参见 TransformAttribute IDENTITY |
TransformAttribute.IDENTITY |
SUPERSCRIPT |
Integer | SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB | 0(使用标准字形和规格) |
FONT |
Font |
没有任何 | null(不重写字体分辨率) |
CHAR_REPLACEMENT |
GraphicAttribute |
没有任何 | null(使用字体字形绘制文本) |
FOREGROUND |
Paint |
没有任何 | null(使用当前图形绘制) |
BACKGROUND |
Paint |
没有任何 | null(不渲染背景) |
UNDERLINE |
Integer | UNDERLINE_ON | -1(不渲染下划线) |
STRIKETHROUGH |
Boolean | STRIKETHROUGH_ON | false(不渲染删除线) |
RUN_DIRECTION |
Boolean | RUN_DIRECTION_LTR RUN_DIRECTION_RTL |
空(使用 Bidi 标准默认值) |
BIDI_EMBEDDING |
Integer | 没有任何 | 0(使用基线方向) |
JUSTIFICATION |
Number | JUSTIFICATION_FULL | JUSTIFICATION_FULL |
INPUT_METHOD_HIGHLIGHT |
InputMethodHighlight , Annotation |
(见类) | null(不应用输入突出显示) |
INPUT_METHOD_UNDERLINE |
Integer | UNDERLINE_LOW_ONE_PIXEL, UNDERLINE_LOW_TWO_PIXEL |
-1(不渲染下划线) |
SWAP_COLORS |
Boolean | SWAP_COLORS_ON | false(不交换颜色) |
NUMERIC_SHAPING |
NumericShaper |
没有任何 | null(不塑造数字) |
KERNING |
Integer | KERNING_ON | 0(不要求字距调整) |
LIGATURES |
Integer | LIGATURES_ON | 0(不形成可选的连字) |
TRACKING |
Number | TRACKING_LOOSE, TRACKING_TIGHT | 0(不添加跟踪) |
- 参见:
-
字段摘要
字段修饰符和类型Field描述static final TextAttribute
用于呈现文本背景的油漆的属性键。static final TextAttribute
文本嵌入级别的属性键。static final TextAttribute
用户定义字形的属性键,以代替字符的字体标准字形显示。static final TextAttribute
字体名称的属性键。static final TextAttribute
用于提供用于呈现文本的字体的属性键。static final TextAttribute
用于呈现文本的油漆的属性键。static final TextAttribute
输入方法高亮样式的属性键。static final TextAttribute
输入方法下划线的属性键。static final TextAttribute
段落对齐的属性键。static final Float
将线对齐到请求的完整宽度。static final Float
不要让线对齐。static final TextAttribute
请求字距调整的属性键。static final Integer
请求标准字距调整。static final TextAttribute
用于启用可选连字的属性键。static final Integer
请求标准的可选连字。static final TextAttribute
用于将 ASCII 十进制数字转换为其他十进制范围的属性键。static final TextAttribute
字体姿势的属性键。static final Float
标准的斜体姿势。static final Float
标准姿势,正直。static final TextAttribute
线的运行方向的属性键。static final Boolean
从左到右的运行方向。static final Boolean
从右到左的运行方向。static final TextAttribute
字体大小的属性键。static final TextAttribute
删除线的属性键。static final Boolean
一个删除线。static final TextAttribute
上标和下标的属性键。static final Integer
标准下标。static final Integer
标准上标。static final TextAttribute
用于交换前景和背景的属性键Paints
。static final Boolean
交换前景和背景。static final TextAttribute
控制跟踪的属性键。static final Float
执行松散跟踪。static final Float
执行紧密跟踪。static final TextAttribute
字体转换的属性键。static final TextAttribute
下划线的属性键。static final Integer
单像素虚线低下划线。static final Integer
单像素虚线低下划线。static final Integer
双像素灰色低下划线。static final Integer
单像素实心低下划线。static final Integer
双像素实心低下划线。static final Integer
标准下划线。static final TextAttribute
字体粗细的属性键。static final Float
标准粗体字重。static final Float
重量比WEIGHT_BOLD
轻一些。static final Float
WEIGHT_LIGHT
和WEIGHT_STANDARD
之间的中间权重。static final Float
最轻的预定义重量。static final Float
一个额外的重量。static final Float
重量比WEIGHT_BOLD
稍重。static final Float
标准重量轻。static final Float
WEIGHT_REGULAR
和WEIGHT_BOLD
之间的中间权重。static final Float
标准体重。static final Float
重量比WEIGHT_REGULAR
稍重。static final Float
最重的预定义重量。static final TextAttribute
字体宽度的属性键。static final Float
最简洁的预定义宽度。static final Float
最大扩展的预定义宽度。static final Float
标准宽度。static final Float
适度压缩的宽度。static final Float
适度延伸的宽度。在类 java.text.AttributedCharacterIterator.Attribute 中声明的字段
INPUT_METHOD_SEGMENT, LANGUAGE, READING
-
构造方法总结
构造方法 -
方法总结
在类 java.text.AttributedCharacterIterator.Attribute 中声明的方法
equals, getName, hashCode, toString
-
字段详细信息
-
FAMILY
字体名称的属性键。值是实例String
.默认值为"Default"
,这会导致使用平台默认字体系列。Font
类定义了逻辑字体名称DIALOG
、DIALOG_INPUT
、SANS_SERIF
、SERIF
和MONOSPACED
的常量。这定义了作为
name
传递给Font
构造函数的值。允许使用逻辑和物理字体名称。如果找不到具有请求名称的字体,则使用默认字体。Note: 不幸的是,这个属性被错误命名,因为它指定的是面孔名称而不仅仅是家庭。因此,诸如“Lucida Sans Bold”之类的值将选择该面(如果存在)。但请注意,如果请求的面不存在,则默认值将与 regular 权重一起使用。名称中的“粗体”是字体名称的一部分,而不是单独要求字体粗细为粗体。
-
WEIGHT
字体粗细的属性键。值是实例Number
.默认值为WEIGHT_REGULAR
。提供了几个常量值,参见
WEIGHT_EXTRA_LIGHT
、WEIGHT_LIGHT
、WEIGHT_DEMILIGHT
、WEIGHT_REGULAR
、WEIGHT_SEMIBOLD
、WEIGHT_MEDIUM
、WEIGHT_DEMIBOLD
、WEIGHT_BOLD
、WEIGHT_HEAVY
、WEIGHT_EXTRABOLD
和WEIGHT_ULTRABOLD
。值WEIGHT_BOLD
对应于传递给Font
构造函数的样式值Font.BOLD
。该值大致是词干宽度与常规重量的比率。
系统可以内插提供的值。
-
WEIGHT_EXTRA_LIGHT
最轻的预定义重量。- 参见:
-
WEIGHT_LIGHT
标准重量轻。- 参见:
-
WEIGHT_DEMILIGHT
WEIGHT_LIGHT
和WEIGHT_STANDARD
之间的中间权重。- 参见:
-
WEIGHT_REGULAR
标准体重。这是WEIGHT
的默认值。- 参见:
-
WEIGHT_SEMIBOLD
重量比WEIGHT_REGULAR
稍重。- 参见:
-
WEIGHT_MEDIUM
WEIGHT_REGULAR
和WEIGHT_BOLD
之间的中间权重。- 参见:
-
WEIGHT_DEMIBOLD
重量比WEIGHT_BOLD
轻一些。- 参见:
-
WEIGHT_BOLD
标准粗体字重。- 参见:
-
WEIGHT_HEAVY
重量比WEIGHT_BOLD
稍重。- 参见:
-
WEIGHT_EXTRABOLD
一个额外的重量。- 参见:
-
WEIGHT_ULTRABOLD
最重的预定义重量。- 参见:
-
WIDTH
字体宽度的属性键。值是实例Number
.默认值为WIDTH_REGULAR
。提供了几个常量值,请参阅
WIDTH_CONDENSED
、WIDTH_SEMI_CONDENSED
、WIDTH_REGULAR
、WIDTH_SEMI_EXTENDED
、WIDTH_EXTENDED
。该值大致为前进宽度与常规宽度的比值。
系统可以内插提供的值。
-
WIDTH_CONDENSED
最简洁的预定义宽度。- 参见:
-
WIDTH_SEMI_CONDENSED
适度压缩的宽度。- 参见:
-
WIDTH_REGULAR
标准宽度。这是WIDTH
的默认值。- 参见:
-
WIDTH_SEMI_EXTENDED
适度延伸的宽度。- 参见:
-
WIDTH_EXTENDED
最大扩展的预定义宽度。- 参见:
-
POSTURE
字体姿势的属性键。值是实例Number
.默认值为POSTURE_REGULAR
。提供了两个常量值,
POSTURE_REGULAR
和POSTURE_OBLIQUE
。值POSTURE_OBLIQUE
对应于传递给Font
构造函数的样式值Font.ITALIC
。该值大致是字体字干的斜率,表示为超过上升。正数的值向右倾斜。
系统可以内插提供的值。
这将影响
Font.getItalicAngle
返回的字体的斜体角度。- 参见:
-
POSTURE_REGULAR
标准姿势,正直。这是POSTURE
的默认值。- 参见:
-
POSTURE_OBLIQUE
标准的斜体姿势。- 参见:
-
SIZE
字体大小的属性键。值是实例Number
.默认值为 12pt。这对应于
Font
构造函数的size
参数。非常大或非常小的尺寸都会影响渲染性能,并且渲染系统可能无法渲染这些尺寸的文本。负尺寸是非法的,会导致默认尺寸。
请注意,具有 2x 变换的 12pt 字体的外观和规格可能与没有变换的 24 磅字体的外观和规格不同。
-
TRANSFORM
字体转换的属性键。值是实例TransformAttribute
.默认值为TransformAttribute.IDENTITY
。TransformAttribute
类定义常量IDENTITY
。这对应于传递给
Font.deriveFont(AffineTransform)
的转换。由于该转换是可变的,TextAttribute
值不能,因此使用了TransformAttribute
包装器类。主要目的是支持缩放和倾斜,尽管其他效果也是可能的。
某些转换会导致基线旋转和/或移动。文本和基线一起转换,以便文本遵循新的基线。例如,对于水平基线上的文本,新基线遵循通过变换的单位 x 向量的方向。文本指标是根据这个新基线来衡量的。因此,例如,在其他条件相同的情况下,使用旋转 TRANSFORM 和未旋转 TRANSFORM 呈现的文本将测量为具有相同的上升、下降和前进。
在带样式的文本中,每个此类运行的基线一个接一个地对齐,从而可能为整个文本运行创建一个非线性基线。有关详细信息,请参阅
TextLayout.getLayoutPath()
。- 参见:
-
SUPERSCRIPT
上标和下标的属性键。值是实例Integer
.默认值为 0,表示不使用上标或下标。提供了两个常量值,请参阅
SUPERSCRIPT_SUPER
和SUPERSCRIPT_SUB
。它们分别具有值 1 和 -1。更大的值定义更高级别的上标或下标,例如,2 对应上标,3 对应上标,负值和下标类似,最高级别为 7(或 -7)。超出此范围的值保留;行为依赖于平台。SUPERSCRIPT
可以影响字体的上升和下降。但是,上升和下降永远不会变为负数。 -
SUPERSCRIPT_SUPER
标准上标。- 参见:
-
SUPERSCRIPT_SUB
标准下标。- 参见:
-
FONT
用于提供用于呈现文本的字体的属性键。值是Font
的实例。默认值为 null,表示应执行来自属性的Font
的正常解析。TextLayout
和AttributedCharacterIterator
根据TextAttributes
的Maps
工作。通常,所有属性都会被检查并用于选择和配置Font
实例。但是,如果存在FONT
属性,则将使用其关联的Font
。这为用户提供了一种将字体属性的分辨率覆盖到Font
或强制使用特定Font
实例的方法。这也允许用户在Font
可以被子类化的情况下指定Font
的子类。FONT
用于客户端已有Font
实例但仍需要使用基于Map
的 API 的特殊情况。通常,除了FONT
属性外,Map
中没有其他属性。对于基于Map
的 API,常见情况是单独指定所有属性,因此不需要或不需要FONT
。但是,如果
FONT
和其他属性都存在于Map
中,则渲染系统会将Font
中定义的属性与其他属性合并。此合并过程将TextAttributes
分为两组。一组,“主要”组,被认为是字体选择和度量行为的基础。这些属性是FAMILY
、WEIGHT
、WIDTH
、POSTURE
、SIZE
、TRANSFORM
、SUPERSCRIPT
和TRACKING
。另一组,即“辅助”组,由所有其他已定义的属性组成,FONT
本身除外。要生成新的
Map
,首先从FONT
属性中获取Font
,并将其属性的 all 提取到新的Map
中。然后只有来自原始Map
的 secondary 属性被添加到新的Map
中。因此,主要属性的值仅来自Font
,次要属性的值源自Font
但可以被Map
中的其他值覆盖。基于 Note:
Font's Map
的构造函数和deriveFont
方法不处理FONT
属性,因为它们用于创建新的Font
对象。相反,Font.getFont(Map)
应该用于处理FONT
属性。- 参见:
-
CHAR_REPLACEMENT
用户定义字形的属性键,以代替字符的字体标准字形显示。值是 GraphicAttribute 的实例。默认值为 null,表示应使用字体提供的标准字形。此属性用于为嵌入在一行文本中的图形或其他组件保留空间。当执行双向重新排序(参见
Bidi
)时,需要在一行中正确定位“内联”组件。每个字符(Unicode 代码点)将使用提供的 GraphicAttribute 呈现。通常,应用此属性的字符应该是\uFFFC
。GraphicAttribute 决定了文本的逻辑和视觉边界;忽略实际的字体值。
- 参见:
-
FOREGROUND
用于呈现文本的油漆的属性键。值是实例Paint
.默认值为null,表示使用渲染时在Graphics2D
上设置的Paint
。字形将使用此
Paint
呈现,而不管Graphics
上设置的Paint
值(但请参阅SWAP_COLORS
)。- 参见:
-
BACKGROUND
用于呈现文本背景的油漆的属性键。值是实例Paint
.默认值为 null,表示不应渲染背景。文本的逻辑边界将使用此
Paint
填充,然后文本将呈现在它之上(但请参阅SWAP_COLORS
)。如有必要,文本的视觉边界被扩展以包括逻辑边界。大纲不受影响。
- 参见:
-
UNDERLINE
-
UNDERLINE_ON
标准下划线。- 参见:
-
STRIKETHROUGH
-
STRIKETHROUGH_ON
一个删除线。- 参见:
-
RUN_DIRECTION
线的运行方向的属性键。值是实例Boolean
.默认值为 null,表示确定运行方向的标准 Bidi 算法应与值Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT
一起使用。提供了常数
RUN_DIRECTION_RTL
和RUN_DIRECTION_LTR
。这决定了传递给
Bidi
构造函数的值,以选择段落中文本的主要方向。Note: 该属性对于段落中的所有文本都应具有相同的值,否则行为不确定。
- 参见:
-
RUN_DIRECTION_LTR
从左到右的运行方向。- 参见:
-
RUN_DIRECTION_RTL
从右到左的运行方向。- 参见:
-
BIDI_EMBEDDING
文本嵌入级别的属性键。值是实例Integer
.默认值为null
,表示双向算法应该在没有显式嵌入的情况下运行。正值 1 到 61 是 embedding 级,负值 -1 到 -61 是 override 级。值 0 表示使用基线方向。这些级别在嵌入级别数组中传递给
Bidi
构造函数。Note: 当该属性出现在段落中的任何位置时,该段落中的任何 Unicode 双向控制字符(RLO、LRO、RLE、LRE 和 PDF)都将被忽略,并且该属性不存在的文本运行被视为存在并且值为 0。
- 参见:
-
JUSTIFICATION
段落对齐的属性键。值是实例Number
.默认值为 1,表示对齐应使用提供的全宽。值固定在 [0..1] 范围内。提供了常量
JUSTIFICATION_FULL
和JUSTIFICATION_NONE
。指定在
TextLayout
上请求对齐时要使用的额外空间的分数。例如,如果线宽为 50 点,要求对齐到 70 点,则值 0.75 将填充以使用剩余空间的四分之三,即 15 点,这样得到的线将是 65 点长度。Note: 这对于段落中的所有文本应该具有相同的值,否则行为是不确定的。
- 参见:
-
JUSTIFICATION_FULL
将线对齐到请求的完整宽度。这是JUSTIFICATION
的默认值。- 参见:
-
JUSTIFICATION_NONE
不要让线对齐。- 参见:
-
INPUT_METHOD_HIGHLIGHT
输入方法高亮样式的属性键。值是
InputMethodHighlight
或Annotation
的实例。默认值为null
,这意味着在呈现之前不应应用输入法样式。如果需要单独呈现具有相同
InputMethodHighlight
的相邻文本运行,则应将InputMethodHighlights
包装在Annotation
实例中。输入方法高亮显示是在输入方法合成文本时使用的。文本编辑组件应该保留它们,即使它们通常只处理无样式的文本,并使它们可用于绘图例程。
- 参见:
-
INPUT_METHOD_UNDERLINE
输入方法下划线的属性键。值是实例Integer
.默认值为-1
,表示没有下划线。提供了几个常量值,请参阅
UNDERLINE_LOW_ONE_PIXEL
、UNDERLINE_LOW_TWO_PIXEL
、UNDERLINE_LOW_DOTTED
、UNDERLINE_LOW_GRAY
和UNDERLINE_LOW_DASHED
。如果需要,这可以与
UNDERLINE
结合使用。主要目的是供输入法使用。将这些下划线用于简单装饰的其他用途可能会使用户感到困惑。输入方法下划线会影响文本的视觉边界和轮廓。
- 自从:
- 1.3
-
UNDERLINE_LOW_ONE_PIXEL
单像素实心低下划线。- 自从:
- 1.3
- 参见:
-
UNDERLINE_LOW_TWO_PIXEL
双像素实心低下划线。- 自从:
- 1.3
- 参见:
-
UNDERLINE_LOW_DOTTED
单像素虚线低下划线。- 自从:
- 1.3
- 参见:
-
UNDERLINE_LOW_GRAY
双像素灰色低下划线。- 自从:
- 1.3
- 参见:
-
UNDERLINE_LOW_DASHED
单像素虚线低下划线。- 自从:
- 1.3
- 参见:
-
SWAP_COLORS
用于交换前景和背景的属性键Paints
。值是实例Boolean
.默认值为false
,表示不交换颜色。常数值
SWAP_COLORS_ON
已定义。如果
FOREGROUND
属性被设置,它的Paint
将被用作背景,否则将使用当前在Graphics
上的Paint
。如果设置了BACKGROUND
属性,其Paint
将用作前景,否则系统将找到与(已解析的)背景形成对比的颜色,以便文本可见。- 参见:
-
SWAP_COLORS_ON
交换前景和背景。- 自从:
- 1.3
- 参见:
-
NUMERIC_SHAPING
用于将 ASCII 十进制数字转换为其他十进制范围的属性键。值是NumericShaper
的实例。默认值为null
,这意味着不执行数字整形。定义数字整形器时,文本首先由整形器处理,然后再对文本进行任何其他分析。
Note: 段落中的所有文本都应具有相同的值,否则行为不确定。
- 自从:
- 1.4
- 参见:
-
KERNING
请求字距调整的属性键。值是实例Integer
.默认值为0
,不要求字距调整。提供了常数值
KERNING_ON
。单个字符的默认推进不适用于某些字符序列,例如“To”或“AWAY”。如果不进行字距调整,相邻字符似乎被太多空格分隔开。字距调整使选定的字符序列具有不同的间距,以获得更令人愉悦的视觉外观。
- 自从:
- 1.6
-
KERNING_ON
请求标准字距调整。- 自从:
- 1.6
- 参见:
-
LIGATURES
- 自从:
- 1.6
-
LIGATURES_ON
请求标准的可选连字。- 自从:
- 1.6
- 参见:
-
TRACKING
控制跟踪的属性键。值是实例Number
.默认值为0
,这意味着没有额外的跟踪。提供了常数值
TRACKING_TIGHT
和TRACKING_LOOSE
。跟踪值乘以字体点大小并通过字体转换来确定要添加到每个字形簇的 advance 的附加量。正跟踪值将抑制可选连字的形成。跟踪值通常在
-0.1
和0.3
之间;超出此范围的值通常是不可取的。- 自从:
- 1.6
-
TRACKING_TIGHT
执行紧密跟踪。- 自从:
- 1.6
- 参见:
-
TRACKING_LOOSE
执行松散跟踪。- 自从:
- 1.6
- 参见:
-
-
构造方法详细信息
-
TextAttribute
构造具有指定名称的TextAttribute
。- 参数:
name
- 分配给这个TextAttribute
的属性名称
-
-
方法详情
-
readResolve
解析被反序列化为预定义常量的实例。- 重写:
readResolve
在类AttributedCharacterIterator.Attribute
中- 返回:
-
已解决的
Attribute
对象 - 抛出:
InvalidObjectException
- 如果要解析的对象不是Attribute
的实例
-