Domanda

Come faccio a visualizzare una nuova riga in JLabel?

Per esempio, se volevo:

  


Ciao Mondo!   blahblahblah

Questo è ciò che ho in questo momento:

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

Questo è ciò che viene visualizzato:

  

Ciao Mondo! Blahblahblah

Perdonami se questa è una domanda stupida, sto solo imparando alcune nozioni di base swing ...

È stato utile?

Soluzione

Circondano la stringa con <html></html> e rompere le righe con <br/>.

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

Altri suggerimenti

Si può cercare di fare questo:

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

I vantaggi di questa operazione sono:

  • Sostituisce tutte le nuove righe con <br/>, a colpo sicuro.
  • Si sostituisce automaticamente eventuali < e > con &lt; e &gt; rispettivamente, prevenire alcuni rendering caos.

Ciò che fa è:

  • "<html>" + aggiunge un tag di apertura html all'inizio
  • .replaceAll("<", "&lt;").replaceAll(">", "&gt;") sfugge < e > per comodità
  • .replaceAll("\n", "<br/>") sostituisce tutte le nuove righe di br (interruzione di riga HTML) Etichette per quello che si voleva
  • ... e + "</html>" chiude il nostro tag html alla fine.

P.S .: Mi dispiace molto per svegliare un tale vecchio post, ma qualunque cosa, si dispone di un frammento affidabile per il vostro Java!

È possibile utilizzare il componente MultilineLabel nei componenti Jide Open Source.

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

Si può fare

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

e andrà a capo automaticamente, se del caso.

Grazie Aakash per raccomandare JIDE MultilineLabel. StyledLabel di JIDE è rafforzata anche recentemente per sostenere su più righe. Lo consiglierei il MultilineLabel come ha molte altre caratteristiche grandi. È possibile controllare un articolo su StyledLabel seguito. E 'ancora libero e open source.

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

JLabel è in realtà in grado di visualizzare alcuni rudimentali HTML, è per questo che non risponde al vostro uso del carattere di fine riga (a differenza, ad esempio, System.out).

Se si mette nel corrispondente HTML e <BR> utilizzato, si dovrebbe ottenere il vostro capo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top