|
JSR 216 (Maintenance Release) | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.awt.Font
The Font
class represents fonts, which are used to
render text in a visible way.
A font provides the information needed to map sequences of
characters to sequences of glyphs
and to render sequences of glyphs on Graphics
and
Component
objects.
'g'
,
LATIN SMALL LETTER G, is a character.
A glyph is a shape used to render a character or a sequence of characters. In simple writing systems, such as Latin, typically one glyph represents one character. In general, however, characters and glyphs do not have one-to-one correspondence. For example, the character 'á' LATIN SMALL LETTER A WITH ACUTE, can be represented by two glyphs: one for 'a' and one for '´'. On the other hand, the two-character string "fi" can be represented by a single glyph, an "fi" ligature. In complex writing systems, such as Arabic or the South and South-East Asian writing systems, the relationship between characters and glyphs can be more complicated and involve context-dependent selection of glyphs as well as glyph reordering. A font encapsulates the collection of glyphs needed to render a selected set of characters as well as the tables needed to map sequences of characters to corresponding sequences of glyphs.
Physical fonts are the actual font libraries containing glyph data and tables to map from character sequences to glyph sequences, using a font technology such as TrueType or PostScript Type 1. Physical fonts may use names such as Helvetica, Palatino, HonMincho, or any number of other font names. Typically, each physical font supports only a limited set of writing systems, for example, only Latin characters or only Japanese and Basic Latin. The set of available physical fonts varies between configurations.
Logical fonts are the five font families defined by the Java platform which must be supported by any Java runtime environment: Serif, SansSerif, Monospaced, Dialog, and DialogInput. These logical fonts are not actual font libraries. Instead, the logical font names are mapped to physical fonts by the Java runtime environment. The mapping is implementation and usually locale dependent, so the look and the metrics provided by them vary. Typically, each logical font name maps to several physical fonts in order to cover a large range of characters.
Peered AWT components, such as Label
and
TextField
, can only use logical fonts.
For a discussion of the relative advantages and disadvantages of using physical or logical fonts, see the Internationalization FAQ document.
Font
can have many faces, such as heavy, medium, oblique, gothic and
regular. All of these faces have similar typographic design.
There are three different names that you can get from a
Font
object. The logical font name is simply the
name that was used to construct the font.
The font face name, or just font name for
short, is the name of a particular font face, like Helvetica Bold. The
family name is the name of the font family that determines the
typographic design across several faces, like Helvetica.
The Font
class represents an instance of a font face from
a collection of font faces that are present in the system resources
of the host system. As examples, Arial Bold and Courier Bold Italic
are font faces. There can be several Font
objects
associated with a font face, each differing in size, style
and font features.
Field Summary | |
static int |
BOLD
The bold style constant. |
static int |
ITALIC
The italicized style constant. |
protected String |
name
The logical name of this Font , as passed to the
constructor. |
static int |
PLAIN
The plain style constant. |
protected int |
size
The point size of this Font , rounded to integer. |
protected int |
style
The style of this Font , as passed to the constructor. |
Constructor Summary | |
Font(Map attributes)
Creates a new Font with the specified attributes. |
|
Font(String name,
int style,
int size)
Creates a new Font from the specified name, style and
point size. |
Method Summary | |
static Font |
decode(String str)
Returns the Font that the str
argument describes. |
boolean |
equals(Object obj)
Compares this Font object to the specified
Object . |
Map |
getAttributes()
Returns a map of font attributes available in this Font . |
AttributedCharacterIterator.Attribute[] |
getAvailableAttributes()
Returns the keys of all the attributes supported by this Font . |
String |
getFamily()
Returns the family name of this Font . |
static Font |
getFont(Map attributes)
Returns a Font appropriate to this attribute set. |
static Font |
getFont(String nm)
Returns a Font object from the system properties list. |
static Font |
getFont(String nm,
Font font)
Gets the specified Font from the system properties
list. |
String |
getName()
Returns the logical name of this Font . |
int |
getSize()
Returns the point size of this Font , rounded to
an integer. |
int |
getStyle()
Returns the style of this Font . |
int |
hashCode()
Returns a hashcode for this Font . |
boolean |
isBold()
Indicates whether or not this Font object's style is
BOLD. |
boolean |
isItalic()
Indicates whether or not this Font object's style is
ITALIC. |
boolean |
isPlain()
Indicates whether or not this Font object's style is
PLAIN. |
String |
toString()
Converts this Font object to a String
representation. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final int PLAIN
public static final int BOLD
public static final int ITALIC
protected String name
Font
, as passed to the
constructor.
getName()
protected int style
Font
, as passed to the constructor.
This style can be PLAIN, BOLD, ITALIC, or BOLD+ITALIC.
getStyle()
protected int size
Font
, rounded to integer.
getSize()
Constructor Detail |
public Font(String name, int style, int size)
Font
from the specified name, style and
point size.
name
- the font name. This can be a logical font name or a
font face name. A logical name must be either: Dialog, DialogInput,
Monospaced, Serif, or SansSerif. If name
is
null
, the name
of the new
Font
is set to the name "Default".style
- the style constant for the Font
The style argument is an integer bitmask that may
be PLAIN, or a bitwise union of BOLD and/or ITALIC
(for example, ITALIC or BOLD|ITALIC).
If the style argument does not conform to one of the expected
integer bitmasks then the style is set to PLAIN.size
- the point size of the Font
GraphicsEnvironment.getAvailableFontFamilyNames()
public Font(Map attributes)
Font
with the specified attributes.
This Font
only recognizes keys defined in
TextAttribute
as attributes. If attributes
is null
, a new Font
is initialized
with default attributes.
attributes
- the attributes to assign to the new
Font
, or null
Method Detail |
public static Font getFont(Map attributes)
Font
appropriate to this attribute set.
attributes
- the attributes to assign to the new
Font
Font
created with the specified
attributesTextAttribute
public String getFamily()
Font
.
The family name of a font is font specific. Two fonts such as
Helvetica Italic and Helvetica Bold have the same family name,
Helvetica, whereas their font face names are
Helvetica Bold and Helvetica Italic. The list of
available family names may be obtained by using the
GraphicsEnvironment.getAvailableFontFamilyNames()
method.
Use getName
to get the logical name of the font.
String
that is the family name of this
Font
.getName()
public String getName()
Font
.
Use getFamily
to get the family name of the font.
String
representing the logical name of
this Font
.getFamily()
public int getStyle()
Font
. The style can be
PLAIN, BOLD, ITALIC, or BOLD+ITALIC.
Font
isPlain()
,
isBold()
,
isItalic()
public int getSize()
Font
, rounded to
an integer.
Most users are familiar with the idea of using point size to
specify the size of glyphs in a font. This point size defines a
measurement between the baseline of one line to the baseline of the
following line in a single spaced text document. The point size is
based on typographic points, approximately 1/72 of an inch.
The Java(tm)2D API adopts the convention that one point is equivalent to one unit in user coordinates. In this case one point is 1/72 of an inch.
Font
in 1/72 of an
inch units.public boolean isPlain()
Font
object's style is
PLAIN.
true
if this Font
has a
PLAIN sytle;
false
otherwise.getStyle()
public boolean isBold()
Font
object's style is
BOLD.
true
if this Font
object's
style is BOLD;
false
otherwise.getStyle()
public boolean isItalic()
Font
object's style is
ITALIC.
true
if this Font
object's
style is ITALIC;
false
otherwise.getStyle()
public static Font getFont(String nm)
Font
object from the system properties list.
nm
- the property name
Font
object that the property name
describes.public static Font decode(String str)
Font
that the str
argument describes.
To ensure that this method returns the desired Font,
format the str
parameter in
one of two ways:
"fontfamilyname-style-pointsize" or
"fontfamilyname style pointsize"
in which style is one of the three
case-insensitive strings:
"BOLD"
, "BOLDITALIC"
, or
"ITALIC"
, and pointsize is a decimal
representation of the point size.
For example, if you want a font that is Arial, bold, and
a point size of 18, you would call this method with:
"Arial-BOLD-18".
The default size is 12 and the default style is PLAIN.
If you don't specify a valid size, the returned
Font
has a size of 12. If you don't specify
a valid style, the returned Font has a style of PLAIN.
If you do not provide a valid font family name in
the str
argument, this method still returns
a valid font with a family name of "dialog".
To determine what font family names are available on
your system, use the
GraphicsEnvironment.getAvailableFontFamilyNames()
method.
If str
is null
, a new Font
is returned with the family name "dialog", a size of 12 and a
PLAIN style.
If str
is null
,
a new Font
is returned with the name "dialog", a
size of 12 and a PLAIN style.
str
- the name of the font, or null
Font
object that str
describes, or a new default Font
if
str
is null
.getFamily()
public static Font getFont(String nm, Font font)
Font
from the system properties
list. As in the getProperty
method of
System
, the first
argument is treated as the name of a system property to be
obtained. The String
value of this property is then
interpreted as a Font
object.
The property value should be one of the following forms:
"BOLD"
, "BOLDITALIC"
, or
"ITALIC"
, and point size is a decimal
representation of the point size.
The default style is PLAIN
. The default point size
is 12.
If the specified property is not found, the font
argument is returned instead.
nm
- the case-insensitive property namefont
- a default Font
to return if property
nm
is not defined
Font
value of the property.decode(String)
public int hashCode()
Font
.
hashCode
in class Object
Font
.Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
Font
object to the specified
Object
.
equals
in class Object
obj
- the Object
to compare
true
if the objects are the same
or if the argument is a Font
object
describing the same font as this object;
false
otherwise.Object.hashCode()
,
Hashtable
public String toString()
Font
object to a String
representation.
toString
in class Object
String
representation of this
Font
object.public Map getAttributes()
Font
. Attributes include things like ligatures and
glyph substitution.
Font
.public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
Font
.
Font
.
|
JSR 216 (Maintenance Release) | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |