2010-06-03 21 views

risposta

103

Certo. Per impostare il colore di primo piano, usa semplicemente label.setForeground(Color.RED).

Per la domanda a due colori: Si potrebbe ad esempio utilizzare html nella tua etichetta-text:

frame.add(new JLabel("<html>Text color: <font color='red'>red</font></html>")); 

produce

enter image description here

Un'altra soluzione è, naturalmente, di utilizzare due JLabel separati, ognuno dei quali ha il colore di primo piano.

42

È possibile impostare il colore di un JLabel alterando la categoria di primo piano:

JLabel title = new JLabel("I love stackoverflow!", JLabel.CENTER); 

title.setForeground(Color.white); 

Per quanto ne so, il modo più semplice per creare l'etichetta a due colori che si desidera è di fare semplicemente due etichette, e assicurarsi che vengano posizionati l'uno accanto all'altro nell'ordine corretto.

16
JLabel label = new JLabel ("Text Color: Red"); 
label.setForeground (Color.red); 

questo dovrebbe funzionare

2

Volevo solo aggiungere a quello che @aioobe di cui sopra ...

In questo approccio si utilizza HTML per codice di colore il testo. Anche se questo è uno dei metodi più usati per colorare il codice del testo dell'etichetta, ma non è il modo più efficiente per farlo .... considerando che ogni etichetta porterà all'analisi HTML, al rendering, ecc. Se si dispone di moduli UI di grandi dimensioni da visualizzare, ogni millisecondo conta per offrire una buona esperienza utente.

Si consiglia di passare attraverso il sottostante e fare un tentativo ....

Jide OSS (trova ahttps://jide-oss.dev.java.net/) è una libreria professionale open source con una buona quantità di componenti Swing pronto all'uso. Hanno una versione molto migliorata di JLabel chiamata StyledLabel. Questo componente risolve perfettamente il tuo problema ... Verifica se la licenza open source si applica al tuo prodotto o meno.

Questo componente è molto facile da usare. Se vuoi vedere una demo dei loro componenti Swing puoi eseguire la loro demo WebStart situata a www.jidesoft.com (http://www.jidesoft.com/products/1.4/jide_demo.jnlp). Tutte le loro offerte sono demo ... e la parte migliore è che StyledLabel viene confrontato con JLabel (HTML e senza) in termini di velocità!:-)

Una schermata del test perf può essere visto (http://img267.imageshack.us/img267/9113/styledlabelperformance.png)

6
object.setForeground(Color.green); 

* qualsiasi colore che si desidera * oggetto che viene dichiarato in precedenza

+6

non è sbagliato - ma nothin g nuovo rispetto alle risposte precedenti :-) – kleopatra

2

Uno degli svantaggi di usare HTML per le etichette sono quando hai bisogno di scrivere un programma localizzabile (che dovrebbe funzionare in diverse lingue). Avrai problemi a cambiare solo il testo traducibile. Oppure si dovrà mettere l'intero codice HTML nelle vostre traduzioni che è molto imbarazzante, direi :) assurdo

gui_en.properties:

title.text=<html>Text color: <font color='red'>red</font></html> 

gui_fr.properties:

title.text=<html>Couleur du texte: <font color='red'>rouge</font></html> 

gui_ru.properties:

title.text=<html>Цвет текста: <font color='red'>красная</font></html> 
Problemi correlati