write mkyong generate example csvwriter create and java user-interface swing formatting jlabel

mkyong - outputstream csv java



Newline en JLabel (6)

¿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 ...


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 <BR> , obtendrá sus nuevas líneas.



Puedes intentar hacer esto:

myLabel.setText("<html>" + myString.replaceAll("<","&lt;").replaceAll(">", "&gt;").replaceAll("/n", "<br/>") + "</html>")

Las ventajas de hacer esto son:

  • Reemplaza todas las líneas nuevas con <br/> , sin falta.
  • Reemplaza automáticamente eventual < y > con &lt; y &gt; respectivamente, evitando que se produzcan estragos.

Lo que hace es:

  • "<html>" + agrega una etiqueta html apertura al principio
  • .replaceAll("<", "&lt;").replaceAll(">", "&gt;") escapa < y > para mayor comodidad
  • .replaceAll("/n", "<br/>") reemplaza todas las líneas nuevas por etiquetas br (salto de línea HTML) por lo que quería
  • ... y + "</html>" 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!


Rodee la cuerda con <html></html> y rompa las líneas con <br/> .

JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);


Tu puedes hacer

JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);

y lo envolverá automáticamente cuando sea apropiado.