All Packages  Class Hierarchy  This Package  Previous  Next  Index  

Class java.awt.font.GlyphMetrics

java.lang.Object
    |
    +----java.awt.font.GlyphMetrics

public final class GlyphMetrics
extends Object
GlyphMetrics represents infomation for a single glyph. GlyphMetrics instances are produced by Font and are applicable to a specific glyph in a particular Font.

Glyphs are either STANDARD, LIGATURE, COMBINING, or COMPONENT. They also may be marked as being either WHITESPACE or HANGING_PUNCTUATION. STANDARD glyphs are commonly used to represent single characters. They do not combine or interact in other ways with surrounding glyphs in a GlyphSet. LIGATURE glyphs are always the first glyph in a sequence of glyphs in a GlyphSet which combine to represent a set of "combining characters," such as the 'fi' ligature found in some fonts. A LIGATURE glyph in a GlyphSet is always followed by one or more COMBINING glyphs. The number of LIGATURE and COMBINING glyphs is always the same as the number of characters represented by the ligature. COMPONENT glyphs in a GlyphSet do not correspond to a particular character in a text model. Instead, COMPONENT glyphs are added for typographical reasons (such as Arabic justification).

Other metrics available through GlyphMetrics are the advance, bounds, and left and right side bearings. The advance of a glyph is the distance from the glyph's origin to the origin of the next glyph. Note that, in a glyphset, the distance from a glyph to its following glyph may not be the glyph's advance. The bounds is the smallest rectangle which completely contains the visible portion of the glyph. The bounds rectangle is relative to the glyph's origin. The left-side bearing is the distance from the glyph origin to the left of its bounds rectangle. If the left-side bearing is negative, part of the glyph is drawn to the left of its origin. The right-side bearing is the distance from the right side of the bounds rectangle to the next glyph origin (the origin plus the advance). If negative, part of the glyph is drawn to the right of the next glyph's origin.

Although instances of GlyphMetrics may be directly constructed, they are almost always obtained from a Font. Once constructed, GlyphMetrics are immutable.

Example:

Querying a Font for glyph information

 Font font = ...;
 int glyphCode = ...;
 GlyphMetrics metrics = font.getGlyphMetrics(glyphCode);
 int isStandard = metrics.isStandard();
 float glyphAdvance = metrics.getAdvance();
 

See Also:
Font, GlyphSet

Variable Index

 o COMBINING
This code indicates a glyph that represents a combining character, such as an umlaut.
 o COMPONENT
This code indicates a glyph with no corresponding character in the backing store.
 o HANGING_PUNCTUATION
This value is added to the base code to indicate hanging punctuation.
 o LIGATURE
This code indicates a glyph that represents multiple characters as a ligature, for example 'fi' or 'ffi'.
 o STANDARD
This code indicates a glyph that represents a single standard character.
 o WHITESPACE
This value is added to the base code to indicate whitespace.

Constructor Index

 o GlyphMetrics(float, Rectangle2D, byte)
Construct a GlyphMetrics.

Method Index

 o getAdvance()
Return the advance width (height) of the glyph.
 o getBounds2D()
Return the black box bounds of the glyph.
 o getLSB()
Return the left (top) side bearing of the glyph.
 o getRSB()
Return the right (bottom) side bearing of the glyph.
 o getType()
Return the raw glyph type code.
 o isCombining()
Return true if this is a combining glyph.
 o isComponent()
Return true if this is a component glyph.
 o isHangingPunctuation()
Return true if this is a hanging punctuation glyph.
 o isLigature()
Return true if this is a ligature glyph.
 o isStandard()
Return true if this is a standard glyph.
 o isWhitespace()
Return true if this is a whitespace glyph.

Variables

 o STANDARD
public static final byte STANDARD
This code indicates a glyph that represents a single standard character.

 o LIGATURE
public static final byte LIGATURE
This code indicates a glyph that represents multiple characters as a ligature, for example 'fi' or 'ffi'. It is followed by non-spacing, non-drawing combining glyphs for the remaining characters.

 o COMBINING
public static final byte COMBINING
This code indicates a glyph that represents a combining character, such as an umlaut. There is no caret position between this glyph and the preceeding glyph.

 o COMPONENT
public static final byte COMPONENT
This code indicates a glyph with no corresponding character in the backing store. The glyph is associated with the character represented by the logicaly preceeding non-component glyph. This is used for kashida justification or other visual modifications to existing glyphs. There is no caret position between this glyph and the preceeding glyph.

 o HANGING_PUNCTUATION
public static final byte HANGING_PUNCTUATION
This value is added to the base code to indicate hanging punctuation. This information is used in justification.

 o WHITESPACE
public static final byte WHITESPACE
This value is added to the base code to indicate whitespace. This information is used in justification.

Constructors

 o GlyphMetrics
public GlyphMetrics(float advance,
                    Rectangle2D bounds,
                    byte glyphType)
Construct a GlyphMetrics.

Parameters:
advance - the advance width (height) of the glyph
bounds - the black box bounds of the glyph.
glyphType - the type of the glyph

Methods

 o getAdvance
public float getAdvance()
Return the advance width (height) of the glyph.

 o getBounds2D
public Rectangle2D getBounds2D()
Return the black box bounds of the glyph. The returned bounds must not be modified by the caller.

 o getLSB
public float getLSB()
Return the left (top) side bearing of the glyph. This is the distance from 0, 0 to the left (top) of the glyph bounds. If the bounds of the glyph is to the left of (above) the origin, the LSB is negative.

 o getRSB
public float getRSB()
Return the right (bottom) side bearing of the glyph. This is the distance from the right (bottom) of the glyph bounds to the advance. If the bounds of the glyph is to the right of (below) the advance, the RSB is negative.

 o getType
public byte getType()
Return the raw glyph type code.

 o isStandard
public boolean isStandard()
Return true if this is a standard glyph.

 o isLigature
public boolean isLigature()
Return true if this is a ligature glyph.

 o isCombining
public boolean isCombining()
Return true if this is a combining glyph.

 o isComponent
public boolean isComponent()
Return true if this is a component glyph.

 o isWhitespace
public boolean isWhitespace()
Return true if this is a whitespace glyph.

 o isHangingPunctuation
public boolean isHangingPunctuation()
Return true if this is a hanging punctuation glyph.


All Packages  Class Hierarchy  This Package  Previous  Next  Index  

Submit a bug or feature