Usando setFont en Java
-
Uso de
setFont()
para establecer una nueva fuente en JFrame -
Uso de
setFont()
ygetFont().deriveFont()
para establecer un estilo en la fuente existente -
Uso de
setFont()
yFont.createFont()
para establecer una fuente personalizada
En este artículo, aprenderemos cómo podemos usar el método setFont()
heredado de java.awt.Container
en la clase javax.swing.JFrame
. Como sugiere el nombre, esta función establece la fuente de los componentes de JFrame
.
Uso de setFont()
para establecer una nueva fuente en JFrame
En este ejemplo, configuramos una nueva fuente para un componente JFrame
.
Primero, creamos un objeto JFrame
y dos etiquetas del tipo JLabel
. Inicializamos las etiquetas con su texto.
Ahora creamos un objeto Font
llamado myFont1
, y en el constructor, pasamos tres argumentos, primero es la fuente que queremos establecer, segundo es el estilo de fuente que se puede llamar usando la clase Font
, y el El último argumento es el tamaño de fuente que es un valor de tipo int
.
Creamos otro objeto Font
, myFont2
, y le asignamos un valor de fuente diferente. Llamamos a la función setFont()
usando los objetos JLabel
y les pasamos los objetos Font
.
Después de eso, establecemos la posición y el tamaño de los componentes usando la función setBounds()
y los agregamos al JFrame
usando add()
. Por fin, establecemos el tamaño y la visibilidad del JFrame
.
import java.awt.*;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame jFrame = new JFrame("Set Font Example");
JLabel jLabel1, jLabel2;
jLabel1 = new JLabel("Label with Serif Font");
jLabel2 = new JLabel("Label with Arial Font");
Font myFont1 = new Font("Serif", Font.BOLD, 12);
jLabel1.setFont(myFont1);
Font myFont2 = new Font("Arial", Font.BOLD, 12);
jLabel2.setFont(myFont2);
jLabel1.setBounds(80, 100, 120, 30);
jLabel2.setBounds(80, 80, 120, 30);
jFrame.add(jLabel1);
jFrame.add(jLabel2);
jFrame.setSize(300, 300);
jFrame.setLayout(null);
jFrame.setVisible(true);
}
}
Producción:
Uso de setFont()
y getFont().deriveFont()
para establecer un estilo en la fuente existente
En el ejemplo anterior, vimos cómo se puede usar setFont()
para establecer una nueva fuente, pero también podemos usar este método para establecer un nuevo estilo para la fuente existente del componente JFrame
.
Para lograr esto, primero obtenemos la fuente del componente usando el component.getFont()
y llamamos a la función deriveFont()
que acepta el estilo que queremos aplicar. Pasamos Font.ITALIC
para convertir la fuente en la JLabel
en cursiva.
import java.awt.*;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame f = new JFrame("Set Font Example");
JLabel jLabel1;
jLabel1 = new JLabel("Label with Italic Style");
jLabel1.setFont(jLabel1.getFont().deriveFont(Font.ITALIC));
jLabel1.setBounds(80, 100, 120, 30);
f.add(jLabel1);
f.setSize(300, 300);
f.setLayout(null);
f.setVisible(true);
}
}
Producción:
Uso de setFont()
y Font.createFont()
para establecer una fuente personalizada
En este ejemplo, configuramos una fuente personalizada, a diferencia del primer programa donde ya configuramos la fuente en la clase.
Para obtener la fuente personalizada, la descargamos y la almacenamos en la raíz de nuestro directorio de proyectos. Usamos el archivo de fuente oswald.ttf
en este ejemplo.
Creamos un JLabel
y lo inicializamos para obtener el archivo de fuente que llamamos BufferedInputStream
y pasamos un objeto de FileInputStream
que toma la ruta del archivo de fuente como argumento. Ahora obtenemos un objeto de InputStream
.
Para crear una nueva fuente, llamamos a createFont()
de la clase Font
y pasamos el tipo de recurso de fuente como primer argumento y el InputStream
como segundo argumento. Configuramos la fuente personalizada al componente JLabel
usando el método deriveFont()
.
Después de todo eso, ahora agregamos el componente al JFrame
. La salida muestra la fuente personalizada.
package sample;
import java.awt.*;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame f = new JFrame("Set Font Example");
JLabel jLabel;
jLabel = new JLabel("Label with a Custom Font");
try {
InputStream inputStream = new BufferedInputStream(new FileInputStream("oswald.ttf"));
Font font = Font.createFont(Font.TRUETYPE_FONT, inputStream);
jLabel.setFont(font.deriveFont(Font.BOLD, 12f));
} catch (FontFormatException | IOException e) {
e.printStackTrace();
}
jLabel.setBounds(80, 100, 120, 30);
f.add(jLabel);
f.setSize(300, 300);
f.setLayout(null);
f.setVisible(true);
}
}
Producción:
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtículo relacionado - Java Swing
- Componente de pintura Java
- Uso de SwingUtilities.invokeLater() en Java
- Campo de texto claro de Java
- Crear lienzo usando Java Swing
- Cambiar el texto JLabel en Java Swing
- Centrar una JLabel en Swing