Pregunta

¿Cómo puedo hacer que el texto de un JLabel extienden hacia otra línea?

¿Fue útil?

Solución

Puede hacerlo poniendo HTML en el código, así:

JFrame frame = new JFrame();
frame.setLayout(new GridLayout());
JLabel label = new JLabel("<html>First line<br>Second line</html>");
frame.add(label);
frame.pack();
frame.setVisible(true);

Otros consejos

si desea que su texto JLabel para cambiar el tamaño de forma automática, por ejemplo, en un estirable GridBagLayout es lo suficientemente sólo para poner su texto en las etiquetas HTML de esta manera:

JLabel label = new JLabel("<html>First line and maybe second line</html>");

Escriba el contenido (es decir, el campo de la propiedad "Texto") dentro de una etiqueta <html></html>. Así que usted puede utilizar or<br> <P> para insertar un salto de línea.

Por ejemplo:

String labelContent = "<html>Twinkle, twinkle, little star,<BR>How I wonder what you are.<BR>Up above the world so high,<BR>Like a diamond in the sky.</html>";

Se mostrará la siguiente manera:

Twinkle, Twinkle, Little Star, España Cómo me pregunto lo que eres.
En lo alto del mundo tan arriba,
Como un diamante en el cielo.

También puede utilizar un JXLabel de < a href = "https://swingx.java.net/" rel = "nofollow"> el SwingX biblioteca .

JXLabel multiline = new JXLabel("this is a \nMultiline Text");
multiline.setLineWrap(true);

He utilizado para JTextArea JLabels de varias líneas.

JTextArea textarea = new JTextArea ("1\n2\n3\n"+"4\n");

http://docs.oracle.com/ JavaSE / 7 / docs / api / javax / swing / JTextArea.html

En mi caso fue suficiente para dividir el texto en cada \n y luego crear un JLabel para cada línea:

JPanel panel = new JPanel(new GridLayout(0,1));
String[] lines = message.split("\n");
for (String line : lines) {
    JLabel label = new JLabel(line);
    panel.add(label);
}

I se ha usado anteriormente en una JOptionPane.showMessageDialog

Es posible que (básico) CSS en el código HTML.


Esta pregunta se vinculó a partir de varias líneas -. Java

String labelText ="<html>Name :"+name+"<br>Surname :"+surname+"<br>Gender :"+gender+"</html>";
JLabel label=new JLabel(labelText);
label.setVisible(true);
label.setBounds(10, 10,300, 100);
dialog.add(label);

¿Por qué le está dando a las cosas complejas ... sólo puede hacerlo poniendo "\ n" en lugar de etiquetas HTML

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top