|
Java Platform 1.2 Beta 4 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.awt.FontMetrics
Note to subclassers: Since many of these methods form closed mutually recursive loops, you must take care that you implement at least one of the methods in each such loop in order to prevent infinite recursion when your subclass is used. In particular, the following is the minimal suggested set of methods to override in order to ensure correctness and prevent infinite recursion (though other subsets are equally feasible):
getAscent()
()
getAscent()
()
getLeading()
()
getMaxAdvance()
()
charWidth(char)
charsWidth(char[], int, int)
When an application asks AWT to place a character at the position (x, y), the character is placed so that its reference point (shown as the dot in the accompanying image) is put at that position. The reference point specifies a horizontal line called the baseline of the character. In normal printing, the baselines of characters should align.
In addition, every character in a font has an ascent, a descent, and an advance width. The ascent is the amount by which the character ascends above the baseline. The descent is the amount by which the character descends below the baseline. The advance width indicates the position at which AWT should place the next character.
If the current character is placed with its reference point
at the position (x, y), and
the character's advance width is w, then the following
character is placed with its reference point at the position
(x +
w, y).
The advance width is often the same as the width of character's
bounding box, but need not be so. In particular, oblique and
italic fonts often have characters whose top-right corner extends
slightly beyond the advance width.
An array of characters or a string can also have an ascent, a descent, and an advance width. The ascent of the array is the maximum ascent of any character in the array. The descent is the maximum descent of any character in the array. The advance width is the sum of the advance widths of each of the characters in the array.
Font
, Serialized FormField Summary | |
protected Font | font
The actual font. |
Constructor Summary | |
FontMetrics(Font font)
Creates a new FontMetrics object for finding out
height and width information about the specified font and
specific character glyphs in that font. |
Method Summary | |
int | bytesWidth(byte[] data,
int off,
int len)
Returns the total advance width for showing the specified array of bytes in this Font. |
int | charsWidth(char[] data,
int off,
int len)
Returns the total advance width for showing the specified array of characters in this Font. |
int | charWidth(char ch)
Returns the advance width of the specified character in this Font. |
int | charWidth(int ch)
Returns the advance width of the specified character in this Font. |
int | getAscent()
Determines the font ascent of the font described by this font metric. |
int | getDescent()
Determines the font descent of the font described by this font metric. |
Font | getFont()
Gets the font described by this font metric. |
int | getHeight()
Gets the standard height of a line of text in this font. |
int | getLeading()
Determines the standard leading of the font described by this font metric. |
LineMetrics | getLineMetrics(char[] chars,
int beginIndex,
int limit,
Graphics context)
|
LineMetrics | getLineMetrics(CharacterIterator ci,
int beginIndex,
int limit,
Graphics context)
|
LineMetrics | getLineMetrics(String str,
Graphics context)
|
LineMetrics | getLineMetrics(String str,
int beginIndex,
int limit,
Graphics context)
|
int | getMaxAdvance()
Gets the maximum advance width of any character in this Font. |
int | getMaxAscent()
Determines the maximum ascent of the font described by this font metric. |
Rectangle2D | getMaxCharBounds(Graphics context)
|
int | getMaxDecent()
Deprecated. As of JDK version 1.1.1, replaced by getMaxDescent() . |
int | getMaxDescent()
Determines the maximum descent of the font described by this font metric. |
Rectangle2D | getStringBounds(char[] chars,
int beginIndex,
int limit,
Graphics context)
|
Rectangle2D | getStringBounds(CharacterIterator ci,
int beginIndex,
int limit,
Graphics context)
|
Rectangle2D | getStringBounds(String str,
Graphics context)
|
Rectangle2D | getStringBounds(String str,
int beginIndex,
int limit,
Graphics context)
|
int[] | getWidths()
Gets the advance widths of the first 256 characters in the Font. |
boolean | hasUniformLineMetrics()
|
int | stringWidth(String str)
Returns the total advance width for showing the specified String in this Font. |
String | toString()
Returns a representation of this FontMetric
object's values as a string. |
Methods inherited from class java.lang.Object | |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
Field Detail |
protected Font font
getFont()
Constructor Detail |
protected FontMetrics(Font font)
FontMetrics
object for finding out
height and width information about the specified font and
specific character glyphs in that font.
font
- the fontFont
Method Detail |
public Font getFont()
public int getLeading()
getHeight()
,
getAscent()
,
getDescent()
public int getAscent()
getMaxAscent()
public int getDescent()
getMaxDescent()
public int getHeight()
getLeading()
,
getAscent()
,
getDescent()
public int getMaxAscent()
getAscent()
public int getMaxDescent()
getDescent()
public int getMaxDecent()
getMaxDescent()
.getMaxDescent()
public int getMaxAdvance()
-1
if the
maximum advance width is not known.public int charWidth(int ch)
ch
- the character to be measuredchar
in the font described by this font metric.charsWidth(char[], int, int)
,
stringWidth(java.lang.String)
public int charWidth(char ch)
ch
- the character to be measuredchar
>
in the font described by this font metric.charsWidth(char[], int, int)
,
stringWidth(java.lang.String)
public int stringWidth(String str)
str
- the String to be measuredbytesWidth(byte[], int, int)
,
charsWidth(char[], int, int)
public int charsWidth(char[] data, int off, int len)
data
- the array of characters to be measured
off
- the start offset of the characters in the array
len
- the number of characters to be measured from the arraychar
array in the font described by
this font metric.charWidth(int)
,
charWidth(char)
,
bytesWidth(byte[], int, int)
,
stringWidth(java.lang.String)
public int bytesWidth(byte[] data, int off, int len)
data
- the array of bytes to be measured
off
- the start offset of the bytes in the array
len
- the number of bytes to be measured from the arraybyte
array in the font described by
this font metric.charsWidth(char[], int, int)
,
stringWidth(java.lang.String)
public int[] getWidths()
public boolean hasUniformLineMetrics()
public LineMetrics getLineMetrics(String str, Graphics context)
public LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context)
public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context)
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context)
public Rectangle2D getStringBounds(String str, Graphics context)
public Rectangle2D getStringBounds(String str, int beginIndex, int limit, Graphics context)
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, Graphics context)
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, Graphics context)
public Rectangle2D getMaxCharBounds(Graphics context)
public String toString()
FontMetric
object's values as a string.
|
Java Platform 1.2 Beta 4 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |