71 votos

Cómo cambiar el tamaño de la fuente de un JLabel para que tome el tamaño máximo

Tengo un JLabel en un Contenedor. El tamaño por defecto de la fuente es muy pequeño. Me gustaría que el texto del JLabel tenga el tamaño máximo.

¿Cómo puedo hacer eso?

108voto

Asaf David Puntos 1448
etiqueta = new JLabel("Una etiqueta");
etiqueta.setFont(new Font("Serif", Font.PLAIN, 14));

tomado de Cómo usar HTML en componentes Swing

77voto

coobird Puntos 70356

No es el código más bonito, pero lo siguiente seleccionará un tamaño de fuente apropiado para un JLabel llamado label de modo que el texto en el interior se ajuste lo máximo posible sin desbordar el label:

Font labelFont = label.getFont();
String labelText = label.getText();

int stringWidth = label.getFontMetrics(labelFont).stringWidth(labelText);
int componentWidth = label.getWidth();

// Descubrir cuánto puede crecer la fuente en ancho.
double widthRatio = (double)componentWidth / (double)stringWidth;

int newFontSize = (int)(labelFont.getSize() * widthRatio);
int componentHeight = label.getHeight();

// Seleccione un nuevo tamaño de fuente de modo que no sea mayor que la altura del label.
int fontSizeToUse = Math.min(newFontSize, componentHeight);

// Establezca el tamaño de fuente del label al tamaño recién determinado.
label.setFont(new Font(labelFont.getName(), Font.PLAIN, fontSizeToUse));

Básicamente, el código analiza cuánto espacio ocupa el texto en el JLabel utilizando el objeto FontMetrics, y luego utiliza esa información para determinar el tamaño de fuente máximo que se puede usar sin desbordar el texto del JLabel.

El código anterior se puede insertar quizás en el método paint del JFrame que contiene el JLabel, o algún método que se invocará cuando se necesite cambiar el tamaño de fuente.

Lo siguiente es una captura de pantalla del código anterior en acción:

alt text
(fuente: <a href="http://coobird.net/img/growing-text.png" rel="noreferrer">coobird.net</a>)

10voto

Ehsan Horrible Puntos 51
 JLabel textLabel = new JLabel(""+Texto+"");

4voto

Bekim Fetaji Puntos 41

Código fuente para la etiqueta - Cómo cambiar el color y la fuente (en Netbeans)

jLabel1.setFont(new Font("Serif", Font.BOLD, 12));

jLabel1.setForeground(Color.GREEN);

4voto

ataullahtoffar Puntos 41
JLabel etiqueta = new JLabel("Hola Mundo");
etiqueta.setFont(new Font("Calibri", Font.BOLD, 20));

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X