- java.lang.Object
-
- java.text.AttributedCharacterIterator.Attribute
-
- java.awt.font.TextAttribute
-
- 实现的所有接口
-
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
-
-
字段汇总
-
声明的属性在类 java.text.AttributedCharacterIterator.Attribute
INPUT_METHOD_SEGMENT, LANGUAGE, READING
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedTextAttribute(String name)构造具有指定名称的TextAttribute。
-
-
-
字段详细信息
-
FAMILY
public static final TextAttribute FAMILY
字体名称的属性键。 值是String实例。 默认值为"Default",这会导致使用平台默认字体系列。所述
Font类定义的逻辑字体名常量DIALOG,DIALOG_INPUT,SANS_SERIF,SERIF,和MONOSPACED。这将传递为
name的值定义为Font构造函数。 允许使用逻辑和物理字体名称。 如果找不到具有所请求名称的字体,则使用默认字体。注意:遗憾的是,此属性名称错误,因为它指定了面部名称而不仅仅是系列。 因此,诸如“Lucida Sans 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。 因此初级属性的值从所述单独来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)。- 另请参见:
-
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 bidi控制字符(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上的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的实例
-
-