Nueva línea en JLabel
-
11-09-2019 - |
Pregunta
¿Cómo puedo mostrar una nueva línea en JLabel
?
Por ejemplo, si quería:
Hello World!
blahblahblah
Esto es lo que tengo en este momento:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
Esto es lo que se muestra:
Hello World! Blahblahblah
Perdóname si esto es una pregunta tonta, sólo estoy aprendiendo algunos fundamentos del oscilación ...
Solución
Rodean la cadena con <html></html>
y romper las líneas con <br/>
.
JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
Otros consejos
Puede tratar de hacer esto:
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
Las ventajas de hacer esto son:
- Sustituye a todas las nuevas líneas con
<br/>
, sin falta. - Se sustituye automáticamente eventual
<
y>
con<
y>
respectivamente, la prevención de algunos render estragos.
Lo que hace es:
-
"<html>" +
añade una etiqueta de aperturahtml
al inicio -
.replaceAll("<", "<").replaceAll(">", ">")
escapa<
y>
para mayor comodidad -
.replaceAll("\n", "<br/>")
sustituye a todas las nuevas líneas debr
(salto de línea) HTML etiquetas para lo que quería - ... y
+ "</html>"
cierra nuestra etiquetahtml
al final.
P.S .: Lo siento mucho para despertar un antiguo puesto tal, pero lo que sea, tiene un fragmento confiable para su Java!
Puede utilizar el componente MultilineLabel en los componentes Fuente Jide Abiertas.
Puede hacer
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
y se ajuste automáticamente cuando proceda.
Aakash Gracias por recomendar JIDE MultilineLabel. StyledLabel de JIDE también se ha mejorado recientemente para apoyar de varias líneas. Se lo recomendaría el MultilineLabel ya que tiene muchas otras funciones muy útiles. Se puede extraer de un artículo sobre StyledLabel a continuación. Todavía es libre y de código abierto.
JLabel es realmente capaz de mostrar algo de HTML rudimentaria, por lo que no está respondiendo a su uso del carácter de nueva línea (a diferencia de, digamos, System.out).
Si se pone en el correspondiente HTML y <BR>
usado, se podrían obtener sus nuevas líneas.