TopBlend: Here is the first difference. There are 69 differences. is old. is new.

java.awt.font
Class TextAttribute


java.lang.Object
  extended by java.text.AttributedCharacterIterator.Attribute
      extended by java.awt.font.TextAttribute
All Implemented Interfaces:
Serializable

public final class TextAttribute
extends AttributedCharacterIterator.Attribute

The TextAttribute class defines attribute keys and attribute values used for text rendering.

TextAttribute instances are used as attribute keys to identify attributes in Font AttributedCharacterIterator , TextLayout Font , AttributedCharacterIterator , and other classes handling text attributes. Other constants defined in this class can be are used as attribute values.

For each text attribute, the documentation provides: describes:

Types of Values

Summary of attributes Interpolation

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
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)

See Also:
Font AttributedCharacterIterator , TextLayout Font , AttributedCharacterIterator , Serialized Form

Field Summary
static  TextAttribute BACKGROUND
          Attribute key for the paint used to render the background of the text. Paint adornment.
static  TextAttribute BIDI_EMBEDDING
          Attribute key for the embedding level of the text. for nested bidirectional runs.
static  TextAttribute CHAR_REPLACEMENT
          Attribute key for a user-defined user_defined glyph to display in the text in lieu of the font's standard glyph for a character.
static  TextAttribute FAMILY
          Attribute key for the unlocalized font family name.
static  TextAttribute FONT
          Attribute key used to provide for the font to use to render text.
static  TextAttribute FOREGROUND
          Attribute key for the foreground paint used to render the text. adornment.
static  TextAttribute INPUT_METHOD_HIGHLIGHT
          Attribute key for input method highlight styles.
static  TextAttribute INPUT_METHOD_UNDERLINE
          Attribute key for input method underlines. underline adornments.
static  TextAttribute JUSTIFICATION
          Attribute key for the justification of a paragraph.
static  Float JUSTIFICATION_FULL
          Justify the line to the full requested width.
static  Float JUSTIFICATION_NONE
          Do not allow the line to be justified.
static  TextAttribute KERNING
          Attribute key to request kerning.
static  Integer KERNING_ON
          Request standard kerning.
static  TextAttribute LIGATURES
          Attribute key for enabling optional ligatures.
static  Integer LIGATURES_ON
          Request standard optional ligatures.
static  TextAttribute NUMERIC_SHAPING
          Attribute key for converting ASCII decimal digits to other decimal ranges.
static  TextAttribute POSTURE
          Attribute key for the posture of a font.
static  Float POSTURE_OBLIQUE
          The standard italic posture.
static  Float POSTURE_REGULAR
          The standard posture, upright.
static  TextAttribute RUN_DIRECTION
          Attribute key for the run direction of the line.
static  Boolean RUN_DIRECTION_LTR
          Left-to-right run direction.
static  Boolean RUN_DIRECTION_RTL
          Right-to-left run direction.
static  TextAttribute SIZE
          Attribute key for the font size.
static  TextAttribute STRIKETHROUGH
          Attribute key for strikethrough. the strikethrough adornment.
static  Boolean STRIKETHROUGH_ON
          A single strikethrough.
static  TextAttribute SUPERSCRIPT
          Attribute key for superscripting super and subscripting.
static  Integer SUPERSCRIPT_SUB
          Standard subscript.
static  Integer SUPERSCRIPT_SUPER
          Standard superscript.
static  TextAttribute SWAP_COLORS
          Attribute key for swapping foreground and background Paints. Paints (or Colors).
static  Boolean SWAP_COLORS_ON
          Swap foreground and background.
static  TextAttribute TRACKING
          Attribute key to control tracking.
static  Float TRACKING_LOOSE
          Perform loose tracking.
static  Float TRACKING_TIGHT
          Perform tight tracking.
static  TextAttribute TRANSFORM
          Attribute key for the transform of a font.
static  TextAttribute UNDERLINE
          Attribute key for underline. underline adornments.
static  Integer UNDERLINE_LOW_DASHED
          Single pixel dashed low underline.
static  Integer UNDERLINE_LOW_DOTTED
          Single pixel dotted low underline.
static  Integer UNDERLINE_LOW_GRAY
          Double pixel gray low underline.
static  Integer UNDERLINE_LOW_ONE_PIXEL
          Single pixel solid low underline.
static  Integer UNDERLINE_LOW_TWO_PIXEL
          Double pixel solid low underline.
static  Integer UNDERLINE_ON
          Standard underline. underline at the roman baseline for roman text, and below the decenders for other text.
static  TextAttribute WEIGHT
          Attribute key for the weight of a font.
static  Float WEIGHT_BOLD
          The standard bold weight.
static  Float WEIGHT_DEMIBOLD
          A moderately lighter weight than WEIGHT_BOLD. BOLD.
static  Float WEIGHT_DEMILIGHT
          An intermediate weight between WEIGHT_LIGHT LIGHT and WEIGHT_STANDARD. STANDARD.
static  Float WEIGHT_EXTRA_LIGHT
          The lightest predefined weight.
static  Float WEIGHT_EXTRABOLD
          An extra heavy weight.
static  Float WEIGHT_HEAVY
          A moderately heavier weight than WEIGHT_BOLD. BOLD.
static  Float WEIGHT_LIGHT
          The standard light weight.
static  Float WEIGHT_MEDIUM
          An intermediate weight between WEIGHT_REGULAR the REGULAR and WEIGHT_BOLD. BOLD weights.
static  Float WEIGHT_REGULAR
          The standard weight.
static  Float WEIGHT_SEMIBOLD
          A moderately heavier weight than WEIGHT_REGULAR. REGULAR.
static  Float WEIGHT_ULTRABOLD
          The heaviest predefined weight.
static  TextAttribute WIDTH
          Attribute key for the width of a font.
static  Float WIDTH_CONDENSED
          The most condensed predefined width.
static  Float WIDTH_EXTENDED
          The most extended predefined width.
static  Float WIDTH_REGULAR
          The standard width.
static  Float WIDTH_SEMI_CONDENSED
          A moderately condensed width.
static  Float WIDTH_SEMI_EXTENDED
          A moderately extended width.
 
Fields inherited from class java.text. AttributedCharacterIterator.Attribute
INPUT_METHOD_SEGMENT , LANGUAGE , READING
 
Constructor Summary
protected TextAttribute ( String  name)
          Constructs a TextAttribute with the specified name.
 
Method Summary
protected   Object readResolve ()
          Resolves instances being deserialized to the predefined constants.
 
Methods inherited from class java.text. AttributedCharacterIterator.Attribute
equals , getName , hashCode , toString
 
Methods inherited from class java.lang. Object
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

Field Detail

FAMILY

public static final TextAttribute FAMILY
Attribute key for the font name. Values are instances of Attribute key for the unlocalized font family name.

Key

FAMILY

Value

String

Constants

"Serif", "SansSerif"

Default

Host default;

Description

The name of the font family. If the family name is not found, the default font is used. The name should not be the full font name or specify other attributes (such as the name "Helvetica Bold").


WEIGHT


public static final TextAttributeString WEIGHT . The default value is "Default", which causes the platform default font family to be used. 
Attribute key for the weight of a font.

Key

WEIGHT

Value

Float

Constants

WEIGHT_EXTRA_LIGHT = 0.5,
WEIGHT_LIGHT = 0.75,
WEIGHT_DEMILIGHT = 0.875,
WEIGHT_REGULAR = 1.0,
WEIGHT_SEMIBOLD = 1.25,
WEIGHT_MEDIUM = 1.5,
WEIGHT_DEMIBOLD = 1.75,
WEIGHT_BOLD = 2.0,
WEIGHT_HEAVY = 2.25,
WEIGHT_EXTRABOLD = 2.5,
WEIGHT_ULTRABOLD = 2.75

Default

WEIGHT_REGULAR

Description

The value is roughly the ratio of the stem width to that of the regular weight.

Fallback

Currently none.
available to simulate weight variations for fonts that don't have them.


WEIGHT_EXTRA_LIGHT


public static final Float WEIGHT_EXTRA_LIGHT 
The lightest predefined weight.

The Font class defines constants for the logical font names DIALOG

See Also:
WEIGHT , DIALOG_INPUT

, SANS_SERIF

WEIGHT_LIGHT


public static final Float, SERIFWEIGHT_LIGHT 
The standard light weight.

See Also:
WEIGHT , and MONOSPACED

.

WEIGHT_DEMILIGHT


public static final Float WEIGHT_DEMILIGHT 
An intermediate weight between LIGHT and STANDARD.

This defines the value passed as name to the Font constructor. Both logical and physical font names are allowed. If a font with the requested name is not found, the default font is used.

See Also:
WEIGHT

WEIGHT_REGULAR


public static final Float WEIGHT_REGULAR 
The standard weight. This weight is used if WEIGHT is unspecified.

Note: This attribute is unfortunately misnamed, as it specifies the face name and not just the family. Thus values such as "Lucida Sans Bold" will select that face if it exists. Note, though, that if the requested face does not exist, the default will be used with regular weight. The "Bold" in the name is part of the face name, not a separate request that the font's weight be bold.

See Also:
WEIGHT

WEIGHT_SEMIBOLD


public static final FloatWEIGHT_SEMIBOLD 
A moderately heavier weight than REGULAR.

See Also:
WEIGHT

WEIGHT_MEDIUM


public static final FloatWEIGHT_MEDIUM 
An intermediate weight between the REGULAR and BOLD weights.

See Also:
WEIGHT

WEIGHT_DEMIBOLD


public static final FloatWEIGHT_DEMIBOLD 
A moderately lighter weight than BOLD.

See Also:
WEIGHT

WEIGHT_BOLD


public static final FloatWEIGHT_BOLD 
The standard bold weight.

See Also:
WEIGHT

WEIGHT_HEAVY


public static final FloatWEIGHT_HEAVY 
A moderately heavier weight than BOLD.

See Also:
WEIGHT

WEIGHT_EXTRABOLD


public static final FloatWEIGHT_EXTRABOLD 
An extra heavy weight.

See Also:
WEIGHT

WEIGHT_ULTRABOLD


public static final FloatWEIGHT_ULTRABOLD 
The heaviest predefined weight.

See Also:
WEIGHT

WIDTH


public static final TextAttributeWIDTH 
Attribute key for the width of a font.

Key

WIDTH

Value

Float

Constants

WIDTH_CONDENSED = 0.75,
WIDTH_SEMI_CONDENSED = 0.875,
WIDTH_REGULAR = 1.0,
WIDTH_SEMI_EXTENDED = 1.25,
WIDTH_EXTENDED = 1.5

Default

WIDTH_REGULAR

Description

The value is roughly the ratio of the advance width to that of the regular width.

Fallback

If a Narrow font is available and matches, use that.


WIDTH_CONDENSED


public static final FloatWIDTH_CONDENSED 
The most condensed predefined width.

See Also:
WIDTH

WIDTH_SEMI_CONDENSED


public static final FloatWIDTH_SEMI_CONDENSED 
A moderately condensed width.

See Also:
WIDTH

WIDTH_REGULAR


public static final FloatWIDTH_REGULAR 
The standard width. This width is used if WIDTH is unspecified.

See Also:
WIDTH

WIDTH_SEMI_EXTENDED


public static final FloatWIDTH_SEMI_EXTENDED 
A moderately extended width.

See Also:
WIDTH

WIDTH_EXTENDED


public static final FloatWIDTH_EXTENDED 
The most extended predefined width.

See Also:
WIDTH

POSTURE


public static final TextAttributePOSTURE 
Attribute key for the posture of a font.

Key

POSTURE

Value

Float

Constants

POSTURE_REGULAR = 0,
POSTURE_OBLIQUE = 0.20

Default

POSTURE_REGULAR

Description

The value is interpreted generally as a skew slope, positive leans to the right. If the font has a different value for specific constants, then the value is interpolated as described in the class description.
Notes:
To set the value by angle, use:
value = new Float(Math.tan(Math.PI*degrees/180.0)
To determine the angle from the value, use:
angle = Math.atan(value.floatValue())*180/Math.PI

Fallback

If an Oblique font is available and matches, use that.

See Also:
Font.getItalicAngle()

POSTURE_REGULAR


public static final FloatPOSTURE_REGULAR 
The standard posture, upright.

See Also:
POSTURE

POSTURE_OBLIQUE


public static final FloatPOSTURE_OBLIQUE 
The standard italic posture.

See Also:
POSTURE

SIZE


public static final TextAttributeSIZE 
Attribute key for the font size.

Key

SIZE

Value

Float

Default

from System Properties

Description

Represents point size.

Fallback

Scale to provided size.


TRANSFORM


public static final TextAttributeTRANSFORM 
Attribute key for the transform of a font.

Key

TRANSFORM

Value

TransformAttribute

Default

Identity transform

Description

Used to transform glyphs rendered by this font. The primary intent is to support scaling, skewing, and translation. In general, large rotations do not produce very useful results. The transform modifies both the glyph and the advance. The translations in the transform are interpreted as a ratio of the point size. That is, with a point size of 12, a translation of 0.5 results in a movement of 6 points.

The advance point of the transformed glyph is the transform of the advance point projected onto the baseline. If the advance ends up to the left (top) of the glyph origin, the two points are swapped.

Example one: The point size is 20, the original advance is 10.0, and the transform is a 60 degree counterclockwise rotation plus an offset up and to the right of 0.1, -0.1. The translation results in an offset of <2.0, -2.0>. The original advance point is <10.0, 0.0>; after the rotation it is <6.0, -8.0>; when adding the offset this becomes <8.0,-10.0>, when projecting on the (horizontal) baseline this becomes the new advance point: <8.0, 0.0>. The advance width is the distance from the origin to the advance point: 8.0. The rotated glyph is rendered two points up and to the right of its origin and rotated.


SUPERSCRIPT


public static final TextAttributeSUPERSCRIPT 
Attribute key for super and subscripting.

Key

SUPERSCRIPT

Value

Integer

Constants

SUPERSCRIPT_NONE = 0,
SUPERSCRIPT_SUPER = 1,
SUPERSCRIPT_SUB = -1

Default

SUPERSCRIPT_NONE

Description

Requests that the font display the characters with glyphs at a particular superscript level: 0 = none, 1 = superscript, 2 = superscript of superscript,...-1 = subscript, -2 = subscript of subscript,...

Fallback

Use transform with translation of +/-1/2 and scale of 2/3, progressively for each level.
offset = sign(N)*1/2*(2/3)^(abs(N)-1)
scale = (2/3)^abs(N)


SUPERSCRIPT_SUPER


public static final IntegerSUPERSCRIPT_SUPER 
Standard superscript.

See Also:
SUPERSCRIPT

SUPERSCRIPT_SUB


public static final IntegerSUPERSCRIPT_SUB 
Standard subscript.

See Also:
SUPERSCRIPT

FONT


public static final TextAttributeFONT 
Attribute key for the font to use to render text.

Key

FONT

Value

Font

Default

None, perform default resolution

Description

A way for users to override the resolution of font attributes into a Font, or force use of a particular Font instance.


CHAR_REPLACEMENT


public static final TextAttributeCHAR_REPLACEMENT 
Attribute key for a user_defined glyph to display in the text in lieu of a character.

Key

CHAR_REPLACEMENT

Value

GraphicAttribute

Description

Allows the user to specify an empty position plus metric information. This method is used to reserve space for a graphic or other embedded component. Required for correct BIDI position of 'inline' components within a line. An optional convenience method allows drawing for simple cases.


FOREGROUND


public static final TextAttributeFOREGROUND 
Attribute key for the foreground paint adornment.

Key

FOREGROUND

Value

Paint

Default

Color.black

Description

Specify the foreground Paint (or Color) of the text.


BACKGROUND


public static final TextAttributeBACKGROUND 
Attribute key for the background Paint adornment.

Key

BACKGROUND

Value

Paint

Default

null

Description

Specify the background Paint (or Color) of the text.


UNDERLINE


public static final TextAttributeUNDERLINE 
Attribute key for underline adornments.

Key

UNDERLINE

Value

Integer

Constants

UNDERLINE_ON = 0

Default

none

Description

An embellishment added to the glyphs rendered by a font.

Fallback


UNDERLINE_ON


public static final IntegerUNDERLINE_ON 
Standard underline at the roman baseline for roman text, and below the decenders for other text.

See Also:
UNDERLINE

STRIKETHROUGH


public static final TextAttributeSTRIKETHROUGH 
Attribute key for the strikethrough adornment.

Key

STRIKETHROUGH

Value

Boolean

Constants

true = on, false = off

Default

off

Description

An embellishment added to the glyphs rendered by a font.


STRIKETHROUGH_ON


public static final BooleanSTRIKETHROUGH_ON 
A single strikethrough.

See Also:
STRIKETHROUGH

RUN_DIRECTION


public static final TextAttributeRUN_DIRECTION 
Attribute key for the run direction of the line.

Key

RUN_DIRECTION

Value

Boolean

Constants

RUN_DIRECTION_LTR = true, RUN_DIRECTION_RTL = false

Default

Use the default Unicode base direction from the BIDI algorithm.

Description

Specifies which base run direction to use when positioning mixed directional runs within a paragraph.

This attribute should have the same value over the whole paragraph.


RUN_DIRECTION_LTR


public static final BooleanRUN_DIRECTION_LTR 
Left-to-right run direction.

See Also:
RUN_DIRECTION

RUN_DIRECTION_RTL


public static final BooleanRUN_DIRECTION_RTL 
Right-to-left run direction.

See Also:
RUN_DIRECTION

BIDI_EMBEDDING


public static final TextAttributeBIDI_EMBEDDING 
Attribute key for the embedding level for nested bidirectional runs.

Key

BIDI_EMBEDDING

Value

Integer

Limits

Positive values 1 through 61 are embedding levels, negative values
through -61 are override levels

Default

Use standard BIDI to compute levels from formatting characters in the text.

Description

Specifies the bidi embedding level of the character. When this attribute is present anywhere in a paragraph, then the Unicode characters RLO, LRO, RLE, LRE, PDF are disregarded in the BIDI analysis of that paragraph. See the Unicode Standard v. 2.0, section 3-11.


JUSTIFICATION


public static final TextAttributeJUSTIFICATION 
Attribute key for the justification of a paragraph.

Key

JUSTIFICATION

Value

Float

Limits

0.0 through1.0

Default

1.0

Description

Specifies which fraction of the extra space to use when justification is requested. For example, if the line is 50 points wide and the margins are 70 points apart, a value of 0.5 means that the line is padded to reach a width of 60 points.

This attribute should have the same value over the whole paragraph.


WEIGHT


 
public static final TextAttributeWEIGHT 
Attribute key for the weight of a font. Values are instances of Number . The default value is WEIGHT_REGULAR.

Several constant values are provided, see WEIGHT_EXTRA_LIGHT , WEIGHT_LIGHT , WEIGHT_DEMILIGHT , WEIGHT_REGULAR , WEIGHT_SEMIBOLD , WEIGHT_MEDIUM , WEIGHT_DEMIBOLD , WEIGHT_BOLD , WEIGHT_HEAVY , WEIGHT_EXTRABOLD , and WEIGHT_ULTRABOLD . The value WEIGHT_BOLD corresponds to the style value Font.BOLD as passed to the Font constructor.

The value is roughly the ratio of the stem width to that of the regular weight.

The system can interpolate the provided value.


WEIGHT_EXTRA_LIGHT


 
public static final FloatWEIGHT_EXTRA_LIGHT 
The lightest predefined weight.

See Also:
WEIGHT

WEIGHT_LIGHT


 
public static final FloatWEIGHT_LIGHT 
The standard light weight.

See Also:
WEIGHT

WEIGHT_DEMILIGHT


 
public static final FloatWEIGHT_DEMILIGHT 
An intermediate weight between WEIGHT_LIGHT and WEIGHT_STANDARD.

See Also:
WEIGHT

WEIGHT_REGULAR


 
public static final FloatWEIGHT_REGULAR 
The standard weight. This is the default value for WEIGHT.

See Also:
WEIGHT

WEIGHT_SEMIBOLD


 
public static final FloatWEIGHT_SEMIBOLD 
A moderately heavier weight than WEIGHT_REGULAR.

See Also:
WEIGHT

WEIGHT_MEDIUM


 
public static final FloatWEIGHT_MEDIUM 
An intermediate weight between WEIGHT_REGULAR and WEIGHT_BOLD.

See Also:
WEIGHT

WEIGHT_DEMIBOLD


 
public static final FloatWEIGHT_DEMIBOLD 
A moderately lighter weight than WEIGHT_BOLD.

See Also:
WEIGHT

WEIGHT_BOLD


 
public static final FloatWEIGHT_BOLD 
The standard bold weight.

See Also:
WEIGHT

WEIGHT_HEAVY


 
public static final FloatWEIGHT_HEAVY 
A moderately heavier weight than WEIGHT_BOLD.

See Also:
WEIGHT

WEIGHT_EXTRABOLD


 
public static final FloatWEIGHT_EXTRABOLD 
An extra heavy weight.

See Also:
WEIGHT

WEIGHT_ULTRABOLD


 
public static final FloatWEIGHT_ULTRABOLD 
The heaviest predefined weight.

See Also:
WEIGHT

WIDTH


 
public static final TextAttributeWIDTH 
Attribute key for the width of a font. Values are instances of Number . The default value is WIDTH_REGULAR.

Several constant values are provided, see WIDTH_CONDENSED , WIDTH_SEMI_CONDENSED , WIDTH_REGULAR , WIDTH_SEMI_EXTENDED , WIDTH_EXTENDED .

The value is roughly the ratio of the advance width to that of the regular width.

The system can interpolate the provided value.


WIDTH_CONDENSED


 
public static final FloatWIDTH_CONDENSED 
The most condensed predefined width.

See Also:
WIDTH

WIDTH_SEMI_CONDENSED


 
public static final FloatWIDTH_SEMI_CONDENSED 
A moderately condensed width.

See Also:
WIDTH

WIDTH_REGULAR


 
public static final FloatWIDTH_REGULAR 
The standard width. This is the default value for WIDTH.

See Also:
WIDTH

WIDTH_SEMI_EXTENDED


 
public static final FloatWIDTH_SEMI_EXTENDED 
A moderately extended width.

See Also:
WIDTH

WIDTH_EXTENDED


 
public static final FloatWIDTH_EXTENDED 
The most extended predefined width.

See Also:
WIDTH

POSTURE


 
public static final TextAttributePOSTURE 
Attribute key for the posture of a font. Values are instances of Number . The default value is POSTURE_REGULAR.

Two constant values are provided, POSTURE_REGULAR and POSTURE_OBLIQUE . The value POSTURE_OBLIQUE corresponds to the style value Font.ITALIC as passed to the Font constructor.

The value is roughly the slope of the stems of the font, expressed as the run over the rise. Positive values lean right.

The system can interpolate the provided value.

This will affect the font's italic angle as returned by Font.getItalicAngle.

See Also:
Font.getItalicAngle()

POSTURE_REGULAR


 
public static final FloatPOSTURE_REGULAR 
The standard posture, upright. This is the default value for POSTURE.

See Also:
POSTURE

POSTURE_OBLIQUE


 
public static final FloatPOSTURE_OBLIQUE 
The standard italic posture.

See Also:
POSTURE

SIZE


 
public static final TextAttributeSIZE 
Attribute key for the font size. Values are instances of Number . The default value is 12pt.

This corresponds to the size parameter to the Font constructor.

Very large or small sizes will impact rendering performance, and the rendering system might not render text at these sizes. Negative sizes are illegal and result in the default size.

Note that the appearance and metrics of a 12pt font with a 2x transform might be different than that of a 24 point font with no transform.


TRANSFORM


 
public static final TextAttributeTRANSFORM 
Attribute key for the transform of a font. Values are instances of TransformAttribute . The default value is TransformAttribute.IDENTITY.

The TransformAttribute class defines the constant IDENTITY .

This corresponds to the transform passed to Font.deriveFont(AffineTransform). Since that transform is mutable and TextAttribute values must not be, the TransformAttribute wrapper class is used.

The primary intent is to support scaling, skewing, and translation. In general, large rotations do not produce very useful results. The transform modifies both the glyph and the advance. The translations in the transform are interpreted as a ratio of the point size. That is, with a point size of 12, a translation of 0.5 results in a movement of 6 points.

The advance point of the transformed glyph is the transform of the advance point projected onto the baseline. If the advance ends up to the left (top) of the glyph origin, the two points are swapped.

Example: The point size is 20, the original advance is 10.0, and the transform is a 60 degree counterclockwise rotation plus an offset up and to the right of 0.1, -0.1. The translation results in an offset of <2.0, -2.0>. The original advance point is <10.0, 0.0>; after the rotation it is <6.0, -8.0>; when adding the offset this becomes <8.0,-10.0>, when projecting on the (horizontal) baseline this becomes the new advance point: <8.0, 0.0>. The advance width is the distance from the origin to the advance point: 8.0. The rotated glyph is rendered two points up and to the right of its origin and rotated. This does not affect the baseline for subsequent glyphs.

See Also:
TransformAttribute , AffineTransform

SUPERSCRIPT


 
public static final TextAttributeSUPERSCRIPT 
Attribute key for superscripting and subscripting. Values are instances of Integer . The default value is 0, which means that no superscript or subscript is used.

Two constant values are provided, see SUPERSCRIPT_SUPER and SUPERSCRIPT_SUB . These have the values 1 and -1 respectively. Values of greater magnitude define greater levels of superscript or subscripting, for example, 2 corresponds to super-superscript, 3 to super-super-superscript, and similarly for negative values and subscript, up to a level of 7 (or -7). Values beyond this range are reserved; behavior is platform-dependent.

SUPERSCRIPT can impact the ascent and descent of a font. The ascent and descent can never become negative, however.


SUPERSCRIPT_SUPER


 
public static final IntegerSUPERSCRIPT_SUPER 
Standard superscript.

See Also:
SUPERSCRIPT

SUPERSCRIPT_SUB


 
public static final IntegerSUPERSCRIPT_SUB 
Standard subscript.

See Also:
SUPERSCRIPT

FONT


 
public static final TextAttributeFONT 
Attribute key used to provide the font to use to render text. Values are instances of Font . The default value is null, indicating that normal resolution of a Font from attributes should be performed.

TextLayout and AttributedCharacterIterator work in terms of Maps of TextAttributes. Normally, all the attributes are examined and used to select and configure a Font instance. If a FONT attribute is present, though, its associated Font will be used. This provides a way for users to override the resolution of font attributes into a Font, or force use of a particular Font instance. This also allows users to specify subclasses of Font in cases where a Font can be subclassed.

FONT is used for special situations where clients already have a Font instance but still need to use Map-based APIs. Typically, there will be no other attributes in the Map except the FONT attribute. With Map-based APIs the common case is to specify all attributes individually, so FONT is not needed or desireable.

However, if both FONT and other attributes are present in the Map, the rendering system will merge the attributes defined in the Font with the additional attributes. This merging process classifies TextAttributes into two groups. One group, the 'primary' group, is considered fundamental to the selection and metric behavior of a font. These attributes are FAMILY, WEIGHT, WIDTH, POSTURE, SIZE, TRANSFORM, SUPERSCRIPT, and TRACKING. The other group, the 'secondary' group, consists of all other defined attributes, with the exception of FONT itself.

To generate the new Map, first the Font is obtained from the FONT attribute, and all of its attributes extracted into a new Map. Then only the secondary attributes from the original Map are added to those in the new Map. Thus the values of primary attributes come solely from the Font, and the values of secondary attributes originate with the Font but can be overridden by other values in the Map.

Note:Font's Map-based constructor and deriveFont methods do not process the FONT attribute, as these are used to create new Font objects. Instead, Font.getFont(Map) should be used to handle the FONT attribute.

See Also:
Font

CHAR_REPLACEMENT


 
public static final TextAttributeCHAR_REPLACEMENT 
Attribute key for a user-defined glyph to display in lieu of the font's standard glyph for a character. Values are intances of GraphicAttribute. The default value is null, indicating that the standard glyphs provided by the font should be used.

This attribute is used to reserve space for a graphic or other component embedded in a line of text. It is required for correct positioning of 'inline' components within a line when bidirectional reordering (see Bidi ) is performed. Each character (Unicode code point) will be rendered using the provided GraphicAttribute. Typically, the characters to which this attribute is applied should be \uFFFC.

The GraphicAttribute determines the logical and visual bounds of the text; the actual Font values are ignored.

See Also:
GraphicAttribute

FOREGROUND


 
public static final TextAttributeFOREGROUND 
Attribute key for the paint used to render the text. Values are instances of Paint . The default value is null, indicating that the Paint set on the Graphics2D at the time of rendering is used.

Glyphs will be rendered using this Paint regardless of the Paint value set on the Graphics (but see SWAP_COLORS ).

See Also:
Paint , SWAP_COLORS

BACKGROUND


 
public static final TextAttributeBACKGROUND 
Attribute key for the paint used to render the background of the text. Values are instances of Paint . The default value is null, indicating that the background should not be rendered.

The logical bounds of the text will be filled using this Paint, and then the text will be rendered on top of it (but see SWAP_COLORS ).

The visual bounds of the text is extended to include the logical bounds, if necessary. The outline is not affected.

See Also:
Paint , SWAP_COLORS

UNDERLINE


 
public static final TextAttributeUNDERLINE 
Attribute key for underline. Values are instances of Integer . The default value is -1, which means no underline.

The constant value UNDERLINE_ON is provided.

The underline affects both the visual bounds and the outline of the text.


UNDERLINE_ON


 
public static final IntegerUNDERLINE_ON 
Standard underline.

See Also:
UNDERLINE

STRIKETHROUGH


 
public static final TextAttributeSTRIKETHROUGH 
Attribute key for strikethrough. Values are instances of Boolean . The default value is false, which means no strikethrough.

The constant value STRIKETHROUGH_ON is provided.

The strikethrough affects both the visual bounds and the outline of the text.


STRIKETHROUGH_ON


 
public static final BooleanSTRIKETHROUGH_ON 
A single strikethrough.

See Also:
STRIKETHROUGH

RUN_DIRECTION


 
public static final TextAttributeRUN_DIRECTION 
Attribute key for the run direction of the line. Values are instances of Boolean . The default value is null, which indicates that the standard Bidi algorithm for determining run direction should be used with the value Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT .

The constants RUN_DIRECTION_RTL and RUN_DIRECTION_LTR are provided.

This determines the value passed to the Bidi constructor to select the primary direction of the text in the paragraph.

Note: This attribute should have the same value for all the text in a paragraph, otherwise the behavior is undetermined.

See Also:
Bidi

RUN_DIRECTION_LTR


 
public static final BooleanRUN_DIRECTION_LTR 
Left-to-right run direction.

See Also:
RUN_DIRECTION

RUN_DIRECTION_RTL


 
public static final BooleanRUN_DIRECTION_RTL 
Right-to-left run direction.

See Also:
RUN_DIRECTION

BIDI_EMBEDDING


 
public static final TextAttributeBIDI_EMBEDDING 
Attribute key for the embedding level of the text. Values are instances of Integer . The default value is null, indicating that the the Bidirectional algorithm should run without explicit embeddings.

Positive values 1 through 61 are embedding levels, negative values -1 through -61 are override levels. The value 0 means that the base line direction is used. These levels are passed in the embedding levels array to the Bidi constructor.

Note: When this attribute is present anywhere in a paragraph, then any Unicode bidi control characters (RLO, LRO, RLE, LRE, and PDF) in the paragraph are disregarded, and runs of text where this attribute is not present are treated as though it were present and had the value 0.

See Also:
Bidi

JUSTIFICATION


 
public static final TextAttributeJUSTIFICATION 
Attribute key for the justification of a paragraph. Values are instances of Number . The default value is 1, indicating that justification should use the full width provided. Values are pinned to the range [0..1].

The constants JUSTIFICATION_FULL and JUSTIFICATION_NONE are provided.

Specifies the fraction of the extra space to use when justification is requested on a TextLayout. For example, if the line is 50 points wide and it is requested to justify to 70 points, a value of 0.75 will pad to use three-quarters of the remaining space, or 15 points, so that the resulting line will be 65 points in length.

Note: This should have the same value for all the text in a paragraph, otherwise the behavior is undetermined.

See Also:
TextLayout.getJustifiedLayout(float)

JUSTIFICATION_FULL


public static final Float JUSTIFICATION_FULL
Justify the line to the full requested width. This is the default value for JUSTIFICATION.

See Also:
JUSTIFICATION

JUSTIFICATION_NONE


public static final Float JUSTIFICATION_NONE
Do not allow the line to be justified.

See Also:
JUSTIFICATION

INPUT_METHOD_HIGHLIGHT


public static final TextAttribute INPUT_METHOD_HIGHLIGHT
Attribute key for input method highlight styles.

Values are instances of InputMethodHighlight or Annotation . These instances should be wrapped in Annotation . The default value is null, which means that input method styles should not be applied before rendering. instances if segments need to be highlighted separately.

If adjacent runs of text with the same InputMethodHighlight need to be rendered separately, the InputMethodHighlights should be wrapped in Annotation instances.

Input method highlights are used while text is being composed by using an input method. Text editing components should retain them even if they generally only deal with unstyled text, and make them available to the drawing routines.

See Also:
Font InputMethodHighlight , InputMethodHighlight , Annotation

INPUT_METHOD_UNDERLINE


public static final TextAttribute INPUT_METHOD_UNDERLINE
Attribute key for input method underlines. Values are instances of Integer . The default value is -1, which means no underline. Attribute key for input method underline adornments.

Several constant values are provided, see UNDERLINE_LOW_ONE_PIXEL , UNDERLINE_LOW_TWO_PIXEL , UNDERLINE_LOW_DOTTED , UNDERLINE_LOW_GRAY , and UNDERLINE_LOW_DASHED .

Key

INPUT_METHOD_UNDERLINE

Value

Integer

Constants

UNDERLINE_LOW_ONE_PIXEL, UNDERLINE_LOW_TWO_PIXEL, UNDERLINE_LOW_DOTTED, UNDERLINE_LOW_GRAY, UNDERLINE_LOW_DASHED

Default

no underline

This may be used in conjunction with UNDERLINE if desired. The primary purpose is for use by input methods. Other use of these underlines for simple ornamentation might confuse users.

The input method underline affects both the visual bounds and the outline of the text.

Since:
1.3

UNDERLINE_LOW_ONE_PIXEL


public static final Integer UNDERLINE_LOW_ONE_PIXEL
Single pixel solid low underline.

Since:
1.3
See Also:
INPUT_METHOD_UNDERLINE

UNDERLINE_LOW_TWO_PIXEL


public static final Integer UNDERLINE_LOW_TWO_PIXEL
Double pixel solid low underline.

Since:
1.3
See Also:
INPUT_METHOD_UNDERLINE

UNDERLINE_LOW_DOTTED


public static final Integer UNDERLINE_LOW_DOTTED
Single pixel dotted low underline.

Since:
1.3
See Also:
INPUT_METHOD_UNDERLINE

UNDERLINE_LOW_GRAY


public static final Integer UNDERLINE_LOW_GRAY
Double pixel gray low underline.

Since:
1.3
See Also:
INPUT_METHOD_UNDERLINE

UNDERLINE_LOW_DASHED


public static final Integer UNDERLINE_LOW_DASHED
Single pixel dashed low underline.

Since:
1.3
See Also:
INPUT_METHOD_UNDERLINE

SWAP_COLORS


public static final TextAttribute SWAP_COLORS
Attribute key for swapping foreground and background Paints. Values are instances of Boolean . The default value is false, which means do not swap colors. Attribute key for swapping foreground and background Paints (or Colors).

The constant value SWAP_COLORS_ON is defined. Values are instances of Boolean. The default is not to swap the foreground and background. If the foreground and background attributes are both defined, this causes them to be swapped when rendering text. If either is defaulted, the exact effect is undefined--generally it will produce an 'inverted' appearance.

If the FOREGROUND attribute is set, its Paint will be used as the background, otherwise the Paint currently on the Graphics will be used. If the BACKGROUND attribute is set, its Paint will be used as the foreground, otherwise the system will find a contrasting color to the (resolved) background so that the text will be visible.

See Also:
FOREGROUND , BACKGROUND

SWAP_COLORS_ON


public static final Boolean SWAP_COLORS_ON
Swap foreground and background.

Since:
1.3
See Also:
SWAP_COLORS

NUMERIC_SHAPING


public static final TextAttribute NUMERIC_SHAPING
Attribute key for converting ASCII decimal digits to other decimal ranges. Values are instances of NumericShaper . The default is null, which means do not perform numeric shaping.

When a numeric shaper is defined, the text is first processed by the shaper before any other analysis of the text is performed. Values are instances of NumericShaping. The default is not to perform numeric shaping.

Note: This should have the same value for all the text in the paragraph, otherwise the behavior is undetermined.

Since:
1.4
See Also:
NumericShaper

KERNING


 
public static final TextAttributeKERNING 
Attribute key to request kerning. Values are instances of Integer . The default value is 0, which does not request kerning.

The constant value KERNING_ON is provided.

The default advances of single characters are not appropriate for some character sequences, for example "To" or "AWAY". Without kerning the adjacent characters appear to be separated by too much space. Kerning causes selected sequences of characters to be spaced differently for a more pleasing visual appearance.

Since:
1.6

KERNING_ON


 
public static final IntegerKERNING_ON 
Request standard kerning.

Since:
1.6
See Also:
KERNING

LIGATURES


 
public static final TextAttributeLIGATURES 
Attribute key for enabling optional ligatures. Values are instances of Integer . The default value is 0, which means do not use optional ligatures.

The constant value LIGATURES_ON is defined.

Ligatures required by the writing system are always enabled.

Since:
1.6

LIGATURES_ON


 
public static final IntegerLIGATURES_ON 
Request standard optional ligatures.

Since:
1.6
See Also:
LIGATURES

TRACKING


 
public static final TextAttributeTRACKING 
Attribute key to control tracking. Values are instances of Number . The default value is 0, which means no additional tracking.

The constant values TRACKING_TIGHT and TRACKING_LOOSE are provided.

The tracking value is multiplied by the font point size and passed through the font transform to determine an additional amount to add to the advance of each glyph cluster. Positive tracking values will inhibit formation of optional ligatures. Tracking values are typically between -0.1 and 0.3; values outside this range are generally not desireable.

Since:
1.6

TRACKING_TIGHT


 
public static final FloatTRACKING_TIGHT 
Perform tight tracking.

Since:
1.6
See Also:
TRACKING

TRACKING_LOOSE


 
public static final FloatTRACKING_LOOSE 
Perform loose tracking.

Since:
1.6
See Also:
TRACKING
Constructor Detail

TextAttribute


protected TextAttribute(String name)
Constructs a TextAttribute with the specified name.

Parameters:
name - the attribute name to assign to this TextAttribute
Method Detail

readResolve


protected Object readResolve()
                      throws InvalidObjectException
Resolves instances being deserialized to the predefined constants.

Overrides:
readResolve in class AttributedCharacterIterator.Attribute
Throws:
InvalidObjectException