Tengo una matriz de Java Swing JLabels. El usuario de mi programa puede agregar un nuevo JLabel al JFrame, y quiero hacer que el tamaño del texto en el JLabel cambie en función del número de JLabels en el marco. Si hay demasiados JLabels, el texto aún se ajustará y no se superpondrá a otros JLabels.Hacer texto en un JLabel cambiar el tamaño dinámicamente
Respuesta
No se ven muy bien, pero si eso es lo que quieres, aquí hay una pieza rápida de código para compilar y ejecutar. Siéntete libre de extraer el código que necesites para tu proyecto. Diviértete, - M.S.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LabelSize extends JPanel {
private Font font;
private JPanel panel;
private JLabel label = new JLabel ("Font Size Adapter Label", JLabel.CENTER);
private JTextField tf = new JTextField ("Type in text for new label here and hit [Enter]");
public LabelSize() {
super (new BorderLayout());
panel = labelPanel();
add (panel, "North");
add (tf, "South");
tf.addActionListener (new ActionListener() {
public void actionPerformed (ActionEvent e) {
label.setText (tf.getText());
label.setFont (font);
int labelW = (int) Math.ceil (label.getPreferredSize().getWidth());
int maxWidth = (int) Math.floor (panel.getSize().getWidth());
if (labelW <= maxWidth)
return;
for (int k = 1 ; labelW > maxWidth ; k++) {
Font labelFont = font.deriveFont (font.getSize() - k*1.0f);
label.setFont (labelFont);
labelW = (int) Math.ceil (label.getPreferredSize().getWidth());
}}});
}
private JPanel labelPanel() {
JPanel lp = new JPanel(new BorderLayout());
lp.setPreferredSize (new Dimension (270,30));
lp.add (label, "North");
font = label.getFont();
return lp;
}
public static void main (String[] args) {
JFrame lsFrame = new JFrame ("Lfit");
lsFrame.add (new LabelSize());
lsFrame.pack();
lsFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
lsFrame.setVisible(true);
}}
gracias por el código, pero si ninguno que me funcione, necesito algo que cambie de tamaño según tamaño de Jlabel – italiano40
De nada, y lo siento, no entiendo el comentario, ¿qué parte del código no funciona? Acabo de copiarlo y pegarlo en un editor, guardarlo, compilarlo y ejecutarlo, funciona perfectamente. Puede ser que no recibí tu pregunta correcta, ¿qué componente (algo) quisiste redimensionar? ¿Quería que los JLabels fueran de tipo fijo (predeterminado)? –
- 1. Cómo cambiar un JLabel dinámicamente
- 2. JLabel al cambiar el evento de texto
- 3. ¿Cómo cambiar el icono de un JLabel?
- 4. Cambiar el color de algunos textos en un JLabel
- 5. hacer una envoltura JLabel es texto estableciendo un ancho máximo
- 6. dinámicamente cambiar el tamaño de un acordeón abierto
- 7. Cambiar la fuente de JLabel
- 8. Cambiar el tamaño del texto en un UIButton
- 9. cambiar el tamaño del texto (tamaño de fuente) al cambiar el tamaño de la ventana?
- 10. Alineación de texto en JLabel
- 11. Cambiar el tamaño emergente de la caja gruesa dinámicamente
- 12. ¿Cambiar texto de párrafo dinámicamente con jQuery?
- 13. ¿Cómo presento el texto verticalmente en un JLabel? (Java 1.6)
- 14. cambiar dinámicamente Tweet Button "texto" datos contenidos
- 15. Cómo cambiar dinámicamente el tamaño del contenido de UIPopoverController?
- 16. El texto html de JLabel ignora setFont
- 17. Cómo cambiar el tamaño de un botón según su texto
- 18. ¿Cómo cambiar el tamaño de la fuente JLabel para llenar el espacio libre de JPanel mientras se cambia el tamaño?
- 19. cambiar dinámicamente el tamaño div en función del tamaño de la ventana del navegador
- 20. ¿Cómo cambiar el tamaño del texto según el tamaño del widget en una vista de texto en un appwidget?
- 21. alinear un JLabel con el texto de una JCheckBox
- 22. averiguar si el texto de JLabel supera el tamaño de etiqueta
- 23. Alinear texto en JLabel a la derecha
- 24. Cómo cambiar el tamaño del texto de correlación en ggpairs()
- 25. Cambiar el tamaño de la imagen de acuerdo con el tamaño del texto
- 26. ¿Cómo cambiar el brillo de la imagen en JLabel?
- 27. ¿Cómo puedo cambiar el tamaño del texto en RemoteViews
- 28. Cambiar el tamaño del elemento dinámicamente con el tamaño de la ventana jquery
- 29. ¿Dos íconos en un JLabel?
- 30. Girar un Swing JLabel
OK ... ¿Tiene alguna pregunta sobre algo de eso? Si es así, siéntase libre de editar su publicación y agregar las preguntas. Preferiblemente con un SSCCE (http://pscode.org/sscce.html) de lo que ya ha intentado. –
La pregunta es, ¿cuál es un buen código para el tamaño dinámico del texto en la etiqueta para que el usuario pueda agregar tantas etiquetas como quiera? – italiano40