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?
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?
etiqueta = new JLabel("Una etiqueta");
etiqueta.setFont(new Font("Serif", Font.PLAIN, 14));
tomado de Cómo usar HTML en componentes Swing
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:
(fuente: <a href="http://coobird.net/img/growing-text.png" rel="noreferrer">coobird.net</a>)
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.