2012-02-01 23 views
5

Ho un JTextArea il cui testo è impostato su una stringa di informazioni. In questa stringa di informazioni che ho una variabile che vorrei di colore rosso, per fare questo posso modificare la stringa come segue:Java - Swing che imposta il colore al testo in JTextArea

"Result: <html><font color=red>" + negativeValue + "</font></html>" 

mi si aspetterebbe questo per dare Risultato: ## dove il numero è rosso. Tuttavia appena mette il seguente nell'area di testo:

Result: <html><font color=red>##</font></html> 

Io non sono davvero sicuro di come ottenere questo lavoro, così qualcuno potrebbe offrire consigli su come farlo?

+2

buona domanda +1 – mKorbel

risposta

8

JTextArea non è un componente progettato per il testo in stile. Se il testo può essere di un solo colore, chiamare setForeground(Color).

In caso contrario, utilizzare un componente di testo in stile, ad esempio JEditorPane o JTextPane. Per maggiori informazioni. quando li usi, vedi How to Use Editor Panes and Text Panes.

Inoltre, come indicato da altri, l'intero String deve iniziare con <html>.

+1

o utilizzare l'evidenziatore +1 – mKorbel

1

Se la memoria è disponibile, JTextArea è solo per la visualizzazione di testo normale. Per HTML, è necessario utilizzare JEditorPane o una delle sue sottoclassi.

0

Java esegue il rendering del codice html solo se inizia con <html>. Si dovrebbe provare come

"<html>Result: <font color=red>" + negativeValue + "</font></html>" 
+2

..e solo se viene messo in un componente di testo in stile. ;) –

1

Non è possibile utilizzare HTML in un JTextArea, ma è possibile usarlo con un JEditorPane

Problemi correlati