Newline en JLabel

¿Cómo puedo mostrar una nueva línea en JLabel ?

Por ejemplo, si quisiera:

Hola Mundo!
bla, bla, bla

Esto es lo que tengo ahora:

 JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER); 

Esto es lo que se muestra:

¡Hola, mundo! Blahblahblah

Perdóname si esta es una pregunta tonta, solo estoy aprendiendo algunos conceptos básicos de Swing …

Rodee la cuerda con y rompa las líneas con
.

 JLabel l = new JLabel("Hello World!
blahblahblah", SwingConstants.CENTER);

Puedes intentar hacer esto:

 myLabel.setText("" + myString.replaceAll("< ","<").replaceAll(">", ">").replaceAll("\n", "
") + "")

Las ventajas de hacer esto son:

  • Reemplaza todas las líneas nuevas con
    , sin falta.
  • Reemplaza automáticamente eventual < y > con < y > respectivamente, evitando que se produzcan esgulps.

Lo que hace es:

  • "" + agrega una etiqueta html apertura al principio
  • .replaceAll("< ", "<").replaceAll(">", ">") escapa < y > para mayor comodidad
  • .replaceAll("\n", "
    ")
    reemplaza todas las líneas nuevas por tags br (salto de línea HTML) por lo que quería
  • ... y + "" cierra nuestra etiqueta html al final.

PD: Lamento despertar una publicación tan antigua, pero sea lo que sea, ¡tienes un fragmento confiable para tu Java!

Puede usar el componente MultilineLabel en los Componentes de Código Abierto de Jide.

http://www.jidesoft.com/products/oss.htm

Tu puedes hacer

 JLabel l = new JLabel("

Hello World! blah blah blah

", SwingConstants.CENTER);

y lo envolverá automáticamente cuando sea apropiado.

Gracias Aakash por recomendar JIDE MultilineLabel. StyledLabel de JIDE también se ha mejorado recientemente para admitir líneas múltiples. Lo recomendaría sobre MultilineLabel ya que tiene muchas otras características excelentes. Puede consultar un artículo sobre StyledLabel a continuación. Todavía es gratis y de código abierto.

http://www.jidesoft.com/articles/StyledLabel.pdf

JLabel es capaz de mostrar un código HTML rudimentario, por lo que no responde al uso del carácter de nueva línea (a diferencia, por ejemplo, de System.out).

Si coloca el HTML correspondiente y utiliza
, obtendrá sus nuevas líneas.