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

¿Fue útil?

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("<","&lt;").replaceAll(">", "&gt;").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 &lt; y &gt; respectivamente, la prevención de algunos render estragos.

Lo que hace es:

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

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

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.

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

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.

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