06/01/2015
La clase Font en Java, ubicada en el paquete java.awt, es fundamental para la representación y renderizado de texto. No se trata de una librería en sí misma, sino de una clase que forma parte de la librería Java Foundation Classes (JFC) o Java 2D API, que ofrece un conjunto de herramientas para el manejo de gráficos y componentes de interfaz de usuario.

Tipos de Fuentes en Java
Java distingue entre dos tipos principales de fuentes:
- Fuentes Físicas: Son las bibliotecas de fuentes reales que contienen los datos de los glifos (formas visuales de los caracteres) y las tablas de mapeo entre secuencias de caracteres y secuencias de glifos. Usan tecnologías como TrueType o PostScript Type Ejemplos de nombres de fuentes físicas son Helvetica, Palatino, etc. Cada fuente física suele soportar un conjunto limitado de sistemas de escritura.
- Fuentes Lógicas: Son cinco familias de fuentes definidas por la plataforma Java que deben ser soportadas por cualquier entorno de ejecución Java: Serif, SansSerif, Monospaced, Dialog y DialogInput. No son bibliotecas de fuentes reales; en su lugar, el entorno de ejecución Java las mapea a fuentes físicas. Este mapeo depende de la implementación y, a menudo, del idioma, por lo que su apariencia y métricas pueden variar.
Nombres de Fuente
Un objeto Font en Java puede tener tres nombres diferentes:
- Nombre lógico: El nombre usado para construir la fuente.
- Nombre de la fuente (o nombre de la cara): El nombre de una fuente particular, como Helvetica Bold.
- Nombre de la familia: El nombre de la familia de fuentes que determina el diseño tipográfico en varias caras, como Helvetica.
Métodos Principales de la Clase Font
La clase Font proporciona una amplia gama de métodos para crear, manipular y obtener información sobre las fuentes. Algunos de los métodos más importantes incluyen:
| Método | Descripción |
|---|---|
Font(String name, int style, int size) | Crea una nueva fuente con el nombre, estilo y tamaño especificados. |
Font(Map<Attribute, ?> attributes) | Crea una nueva fuente con los atributos especificados, utilizando la clase TextAttribute . |
getName() | Obtiene el nombre lógico de la fuente. |
getFamily() | Obtiene el nombre de la familia de la fuente. |
getStyle() | Obtiene el estilo de la fuente (PLAIN, BOLD, ITALIC, BOLD + ITALIC). |
getSize() | Obtiene el tamaño de la fuente en puntos. |
canDisplay(char c) | Verifica si la fuente puede mostrar un carácter específico. |
deriveFont(int style, float size) | Crea una nueva fuente derivada de la actual, con un estilo y tamaño diferentes. |
getAttributes() | Obtiene un mapa de atributos de la fuente. |
getStringBounds(String str, FontRenderContext frc) | Obtiene los límites del String utilizando el contexto de renderizado de la fuente. |
Constantes de Estilo de Fuente
La clase Font define constantes para representar los estilos de fuente:
Font.PLAINFont.BOLDFont.ITALIC
Estos estilos pueden combinarse usando operadores bit a bit (por ejemplo, Font.BOLD | Font.ITALIC).

Ejemplos de Uso
A continuación, se presentan algunos ejemplos de cómo utilizar la clase Font en Java:
Ejemplo 1: Crear una fuente con nombre, estilo y tamaño:

Font font = new Font("Arial", Font.BOLD, 14);Ejemplo 2: Crear una fuente usando un mapa de atributos:
Map<TextAttribute, Object> attributes = new HashMap<TextAttribute, Object>();attributes.put(TextAttribute.FAMILY, "Serif");attributes.put(TextAttribute.SIZE, 12);Font font = Font.getFont(attributes);Ejemplo 3: Obtener información de una fuente:
Font font = new Font("Times New Roman", Font.ITALIC, 16);System.out.println("Nombre de la fuente: " + font.getName());System.out.println("Familia de la fuente: " + font.getFamily());System.out.println("Estilo de la fuente: " + font.getStyle());System.out.println("Tamaño de la fuente: " + font.getSize());Consideraciones de Internacionalización
Al trabajar con fuentes en Java, tener en cuenta la internacionalización. El mapeo entre fuentes lógicas y físicas puede depender del idioma y la configuración regional. Es recomendable utilizar fuentes lógicas siempre que sea posible para garantizar la compatibilidad con diferentes idiomas y sistemas de escritura.
Consultas Frecuentes
¿Cómo seleccionar la mejor fuente para mi aplicación? La mejor fuente dependerá del contexto de su aplicación. Considere la legibilidad, la estética y la compatibilidad con diferentes sistemas operativos y configuraciones regionales.

¿Cómo manejar fuentes personalizadas? Puede incluir fuentes personalizadas con su aplicación y acceder a ellas utilizando el método Font.createFont()(requiere manejo de excepciones).

¿Qué hacer si una fuente no está disponible? Si la fuente especificada no está disponible, Java usará una fuente predeterminada. Puede usar el método canDisplay()para verificar si una fuente puede mostrar un carácter dado.
Tabla Comparativa de Fuentes Lógicas
| Fuente Lógica | Descripción |
|---|---|
| Serif | Fuente con remates (pequeñas líneas al final de las letras). |
| SansSerif | Fuente sin remates. |
| Monospaced | Fuente de espacio fijo (cada carácter ocupa el mismo ancho). |
| Dialog | Fuente predeterminada para cuadros de diálogo. |
| DialogInput | Fuente predeterminada para campos de entrada de texto. |
La clase Font en Java es una herramienta esencial para el manejo de fuentes, proporcionando la funcionalidad necesaria para renderizar texto de manera eficiente y adaptable a diferentes contextos. Su comprensión es crucial para el desarrollo de aplicaciones Java robustas y visualmente atractivas.
Si quieres conocer otros artículos parecidos a Tutorial definitiva de la clase font en java: librerías, tipos y métodos puedes visitar la categoría Libros y Librerías.
