texto de varias líneas en JLabel
Pregunta
¿Cómo puedo hacer que el texto de un JLabel extienden hacia otra línea?
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