- java.lang.Object
-
- java.text.AttributedCharacterIterator.Attribute
-
- java.awt.font.TextAttribute
-
- All Implemented Interfaces:
-
Serializable
public final class TextAttribute extends AttributedCharacterIterator.Attribute
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, value type, principal constants, and default value behavior of all TextAttributes Key Value Type Principal Constants Default ValueFAMILYString See FontDIALOG,DIALOG_INPUT,
SERIF,SANS_SERIF, andMONOSPACED. "Default" (use platform default)WEIGHTNumber WEIGHT_REGULAR, WEIGHT_BOLD WEIGHT_REGULARWIDTHNumber WIDTH_CONDENSED, WIDTH_REGULAR,
WIDTH_EXTENDED WIDTH_REGULARPOSTURENumber POSTURE_REGULAR, POSTURE_OBLIQUE POSTURE_REGULARSIZENumber none 12.0TRANSFORMTransformAttributeSee TransformAttributeIDENTITYTransformAttribute.IDENTITYSUPERSCRIPTInteger SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB 0 (use the standard glyphs and metrics)FONTFontnone null (do not override font resolution)CHAR_REPLACEMENTGraphicAttributenone null (draw text using font glyphs)FOREGROUNDPaintnone null (use current graphics paint)BACKGROUNDPaintnone null (do not render background)UNDERLINEInteger UNDERLINE_ON -1 (do not render underline)STRIKETHROUGHBoolean STRIKETHROUGH_ON false (do not render strikethrough)RUN_DIRECTIONBoolean RUN_DIRECTION_LTR
RUN_DIRECTION_RTL null (useBidistandard default)BIDI_EMBEDDINGInteger none 0 (use base line direction)JUSTIFICATIONNumber JUSTIFICATION_FULL JUSTIFICATION_FULLINPUT_METHOD_HIGHLIGHTInputMethodHighlight,Annotation(see class) null (do not apply input highlighting)INPUT_METHOD_UNDERLINEInteger UNDERLINE_LOW_ONE_PIXEL,
UNDERLINE_LOW_TWO_PIXEL -1 (do not render underline)SWAP_COLORSBoolean SWAP_COLORS_ON false (do not swap colors)NUMERIC_SHAPINGNumericShapernone null (do not shape digits)KERNINGInteger KERNING_ON 0 (do not request kerning)LIGATURESInteger LIGATURES_ON 0 (do not form optional ligatures)TRACKINGNumber TRACKING_LOOSE, TRACKING_TIGHT 0 (do not add tracking)- 另请参见:
-
Font,TextLayout,AttributedCharacterIterator, Serialized Form
-
-
Field Summary
-
Fields inherited from class java.text.AttributedCharacterIterator.Attribute
INPUT_METHOD_SEGMENT, LANGUAGE, READING
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedTextAttribute(String name)构造具有指定名称的TextAttribute。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected ObjectreadResolve()解析反序列化为预定义常量的实例。-
Methods inherited from class java.text.AttributedCharacterIterator.Attribute
equals, getName, hashCode, toString
-
-
-
-
字段详细信息
-
FAMILY
public static final TextAttribute FAMILY
字体名称的属性键。 值为String实例。 默认值为"Default",这将导致使用平台默认字体系列。所述
Font类定义的逻辑字体名常量DIALOG,DIALOG_INPUT,SANS_SERIF,SERIF,和MONOSPACED。这将将传递给
name的值定义为Font构造函数。 逻辑和物理字体名称都是允许的。 如果未找到具有请求名称的字体,则使用默认字体。注意:这个属性不幸被命名,因为它指定了面部名称,而不仅仅是家庭。 因此,诸如“Lucida Sans Bold”这样的值将选择该面部存在。 但是,请注意,如果请求的脸部不存在,默认值将以常规权重使用。 名称中的“Bold”是脸部名称的一部分,而不是单独的请求,字体的重量是粗体。
-
WEIGHT
public static final TextAttribute 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_DEMILIGHT
public static final Float WEIGHT_DEMILIGHT
中间重量在WEIGHT_LIGHT和WEIGHT_STANDARD之间。- 另请参见:
-
WEIGHT
-
WEIGHT_MEDIUM
public static final Float WEIGHT_MEDIUM
中间重量在WEIGHT_REGULAR和WEIGHT_BOLD之间。- 另请参见:
-
WEIGHT
-
WIDTH
public static final TextAttribute WIDTH
字体宽度的属性键。 值为Number实例。 默认值为WIDTH_REGULAR。提供了几个常量值,见
WIDTH_CONDENSED,WIDTH_SEMI_CONDENSED,WIDTH_REGULAR,WIDTH_SEMI_EXTENDED,WIDTH_EXTENDED。该值大致是前进宽度与正常宽度的比率。
系统可以内插提供的值。
-
POSTURE
public static final TextAttribute POSTURE
字体姿势的属性键。 值为Number实例。 默认值为POSTURE_REGULAR。提供两个常数值,
POSTURE_REGULAR和POSTURE_OBLIQUE。 值POSTURE_OBLIQUE对应于传递给Font构造函数的样式值Font.ITALIC。该值大体上是字体的斜率,表示为上升。 正值正确。
系统可以内插提供的值。
这将影响
Font.getItalicAngle返回的字体的斜体角度。- 另请参见:
-
Font.getItalicAngle()
-
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()。- 另请参见:
-
TransformAttribute,AffineTransform
-
SUPERSCRIPT
public static final TextAttribute SUPERSCRIPT
上标和下标的属性键。 值为Integer实例。 默认值为0,这意味着不使用上标或下标。提供两个常数值,参见
SUPERSCRIPT_SUPER和SUPERSCRIPT_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。TextLayout和AttributedCharacterIterator以Maps的TextAttributes。 通常,所有属性都将被检查并用于选择和配置一个Font实例。 如果FONT属性存在,虽然其相关Font将被使用。 这为用户提供了将字体属性分辨率覆盖到Font,或强制使用特定的Font实例。 这也允许用户指定的子类Font的情况下,一个Font可以被继承。FONT用于特殊情况,其中客户端已有Font实例,但仍需使用基于Map的API。 通常情况下,会有在没有其他属性Map除了FONT属性。 使用基于Map的API,常见的情况是单独指定所有属性,因此不需要或希望使用FONT。但是,如果
FONT和其他属性均存在于Map,则绘制系统将将其中的属性合并在Font定义的属性。 此合并过程将TextAttributes分为两组。 一个组,“主要”组被认为是字体的选择和度量行为的基础。 这些属性是FAMILY,WEIGHT,WIDTH,POSTURE,SIZE,TRANSFORM,SUPERSCRIPT,并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渲染字形。- 另请参见:
-
Paint,SWAP_COLORS
-
BACKGROUND
public static final TextAttribute BACKGROUND
用于渲染文本背景的绘画的属性键。 值是Paint实例。 默认值为null,表示不应呈现背景。文本的逻辑边界将使用此
Paint填充,然后文本将在其上显示(但请参阅SWAP_COLORS)。如果需要,文本的可视界限被扩展为包括逻辑边界。 大纲不受影响。
- 另请参见:
-
Paint,SWAP_COLORS
-
UNDERLINE
public static final TextAttribute UNDERLINE
-
STRIKETHROUGH
public static final TextAttribute STRIKETHROUGH
-
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_RTL和RUN_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_FULL和JUSTIFICATION_NONE。指定在
TextLayout请求对齐时使用的额外空间的分数。 例如,如果线是50点宽,并且被要求证明为70点,则0.75的值将用于占用剩余空间的四分之三或15点,使得所得到的线将为65点长度。注意:对于段落中的所有文本应该具有相同的值,否则行为是不确定的。
-
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
输入法高亮样式的属性键。值为
InputMethodHighlight或Annotation的实例。 默认值为null,这意味着在渲染之前不应该应用输入法样式。如果具有相同的文本相邻的运行
InputMethodHighlight需要单独呈现时,InputMethodHighlights应包裹在Annotation实例。当输入法正在组合文本时,使用输入法高亮。 文本编辑组件应该保留它们,即使它们通常仅处理未被写入的文本,并使它们可用于绘图例程。
- 另请参见:
-
Font,InputMethodHighlight,Annotation
-
INPUT_METHOD_UNDERLINE
public static final TextAttribute 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
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将被用作前台,否则系统将会找到与(已解析)背景的对比色,以使文本可见。- 另请参见:
-
FOREGROUND,BACKGROUND
-
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
-
LIGATURES
public static final TextAttribute LIGATURES
- 从以下版本开始:
- 1.6
-
TRACKING
public static final TextAttribute TRACKING
属性键控制跟踪。 值为Number实例。 默认值为0,这意味着没有额外的跟踪。提供常数值
TRACKING_TIGHT和TRACKING_LOOSE。跟踪值乘以字体点大小,并通过字体转换,以确定添加到每个字形集群的前进的附加数量。 正的跟踪值将抑制可选结扎的形成。 跟踪值通常在
-0.1和0.3之间; 超出该范围的值通常是不期望的。- 从以下版本开始:
- 1.6
-
-
构造方法详细信息
-
TextAttribute
protected TextAttribute(String name)
构造具有指定名称的TextAttribute。- 参数
-
name- 要分配给此TextAttribute的属性名称
-
-
方法详细信息
-
readResolve
protected Object readResolve() throws InvalidObjectException
解析反序列化为预定义常量的实例。- 重写:
-
readResolve在AttributedCharacterIterator.Attribute - 结果
-
解决了
Attribute对象 - 异常
-
InvalidObjectException- 如果要解析的对象不是Attribute的实例
-
-