2011-09-16 10 views
5

Desidero visualizzare del testo in JLabel in fase di esecuzione. Voglio solo sapere che c'è comunque attraverso il quale il testo viene dispalyed su più righe per esempio voglio che il mio testo da visualizzare nel seguente formato:Esiste una marca di etichette MultiLine?

Line 1 
Line 2 
Line 3 

String sText = "Line1 \n Line2 \n Line3"; 
jLabel1.setText (sText); 

ho provato il codice di cui sopra, ma non il suo lavoro. Sto donando qualcosa di sbagliato o JLabel non supporta la funzione sopra indicata?

Nel caso in cui io sono in grado di ottenere la funzionalità di cui sopra, allora per favore mi guida Come faccio ad aggiungere più etichette (uno per ogni linea) in JPanel in fase di esecuzione

+2

L'altra opzione è quella di utilizzare JLabels linea singola ma metterli in un JPanel (contenitore) che utilizza un layout che consente di impilare i JLabels, come un GridLayout o un BoxLayout. –

risposta

11

JLabel supporta HTML. È possibile scrivere:

String sText = "<html>Line1 <br/> Line2 <br/> Line3</html>"; 
jLabel1.setText (sText); 

Edit: ho aggiunto indietro barre con tag br al fine di rendere il codice di lavoro

+1

Thx bro, ma la sua non funziona sul mio PC :(Qualche consiglio? Sto usando NetBeans 7 e Win 7 – Jame

+1

@Jame, Prova ' " Riga1
Riga2
Line3"' – mrkhrts

+0

Si prega di provare senza tag di chiusura in 'br' e allegando il tag html. Vedi anche: http://download.oracle.com/javase/tutorial/uiswing/components/html.html –

4

uso <br> invece di utilizzare \ n e prefisso esso da <html> come questo

"<html>Line1 <br> Line2 <br> Line3</html>"; 
+0

Si noti che per avere effetto (per essere reso come HTML), 'String' ha bisogno di un prefisso' ''
'. Altrimenti +1. –

+0

Post corretto. downvot rimosso. –

3

Una soluzione migliore per il testo formattato HTML, in questo caso, è quello di eliminare le interruzioni di riga forzate (tranne alla fine dei paragrafi) e impostare la larghezza dell'HTML usando CSS.

Come visto nell'esempio 2 (LabelRenderTest.java) mostrato here.

JLabel with multiline, formatted, text.