552

Capítulo 12 Gráfi cos y Java 2D™

tipo de letra hasta que éste se modifi que. La información de cada tipo de letra se muestra en las líneas 17, 21, 25, 
30 y 31, usando el método 

drawString

. Observe que la coordenada que se pasa a 

drawString

 corresponde a 

la esquina inferior izquierda de la línea base del tipo de letra.En la línea 28 se cambia el color de dibujo a rojo, 
por lo que la siguiente cadena que se muestra aparece en color rojo. En las líneas 30 a 31 se muestra información 
acerca del objeto 

Font

 fi nal. El método 

getFont

 de la clase 

Graphics

 devuelve un objeto 

Font

 que representa el 

tipo de letra actual. El método 

getName

 devuelve el nombre del tipo de letra actual como una cadena. El método 

getSize

 devuelve el tamaño del tipo de letra, en puntos.

La fi gura 12.12 contiene el método 

main

, que crea un objeto 

JFrame

. Agregamos un objeto 

FontJPanel

 a 

este objeto 

JFrame

 (línea 15), el cual muestra los gráfi cos creados en la fi gura 12.11.

Observación de ingeniería de software 12.2

Para cambiar el tipo de letra, debe crear un nuevo objeto 

Font

. Los objetos 

Font

 son inmutables; la clase 

Font

 no 

tiene métodos establecer para modifi car las características del tipo de letra actual.

Métrica de los tipos de letra

En ocasiones es necesario obtener información acerca del tipo de letra actual para dibujar, como el nombre, el 
estilo y el tamaño del tipo de letra. En la fi gura 12.10 se sintetizan varios métodos de 

Font

 que se utilizan para 

obtener información sobre el tipo de letra. El método 

getStyle

 devuelve un valor entero que representa el estilo 

actual. El valor entero devuelto puede ser 

Font.PLAIN

,

Font.ITALIC

,

Font.BOLD

 o la combinación de 

Font.

ITALIC

 y 

Font.BOLD

. El método 

getFamily

 devuelve el nombre de la familia a la que pertenece el tipo de letra 

actual. El nombre de la familia del tipo de letra es específi co de la plataforma. También hay métodos de 

Font

disponibles para probar el estilo del tipo de letra actual, los cuales se sintetizan también en la fi gura 12.10. Los 
métodos

isPlain

,

isBold

 e 

isItalic

 devuelven 

true

 si el estilo del tipo de letra actual es simple, negrita o 

cursiva, respectivamente.

Algunas veces es necesario conocer información precisa acerca de la métrica de un tipo de letra, como la 

altura

, el 

descendente

 (la distancia entre la base de la línea y el punto inferior del tipo de letra), el 

ascendente

(la cantidad que se eleva un carácter por encima de la base de la línea) y el 

interlineado

 (la diferencia entre el 

descendente de una línea de texto y el ascendente de la línea de texto que está debajo; es decir, el espaciamiento 
entre líneas). En la fi gura 12.13 se muestran algunos elementos comunes de la 

métrica de los tipos de letras

.

La clase 

FontMetrics

 declara varios métodos para obtener información métrica de los tipos de letra. En la 

fi gura 12.14 se sintetizan estos métodos, junto con el método 

getFontMetrics

 de la clase 

Graphics

. La aplica-

ción de las fi guras 12.15 y 12.16 utiliza los métodos de la fi gura 12.14 para obtener la información métrica de 
dos tipos de letra.

En la línea 15 de la fi gura 12.15 se crea y se establece el tipo de letra actual para dibujar en 

SansSerif

,

negrita, 12 puntos. En la línea 16 se utiliza el método 

getFontMetrics

 de 

Graphics

 para obtener el objeto 

FontMetrics

 del tipo de letra actual. En la línea 17 se imprime la representación 

String

 del objeto 

Font

 devuel-

to por 

g.getFont()

. En las líneas 18 a 21 se utilizan los métodos de 

FontMetrics

 para obtener el ascendente, 

descendente, altura e interlineado del tipo de letra.

En la línea 23 se crea un nuevo tipo de letra 

Serif

, cursiva, 14 puntos. En la línea 24 se utiliza una segunda 

versión del método 

getFontMetrics

 de 

Graphics

, la cual recibe un argumento 

Font

 y devuelve su correspon-

diente objeto 

FontMetrics

. En las líneas 27 a 30 se obtiene el ascendente, descendente, altura e interlineado de 

ese tipo de letra. Observe que la métrica es ligeramente distinta para cada uno de los tipos de letra.

ascendente

altura

interlineado

descendente

línea base

Figura 12.13  

|  Métrica de los tipos de letra.

12_MAQ_CAP_12_DEITEL.indd552

4/19/081:26:57AM