2010-06-03 7 views

Répondre

103

Bien sûr. Pour définir la couleur de premier plan, utilisez simplement label.setForeground(Color.RED).

Pour la question deux couleurs: Vous pouvez par exemple utiliser HTML dans votre étiquette texte:

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

produit

enter image description here

Une autre solution est bien sûr d'utiliser deux JLabels séparés, dont chacun a sa couleur de premier plan.

42

Vous pouvez définir la couleur d'un JLabel en modifiant la catégorie de premier plan:

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

title.setForeground(Color.white); 

Pour autant que je sache, la façon la plus simple de créer l'étiquette à deux couleurs que vous voulez est simplement de faire deux étiquettes, et assurez-vous qu'ils sont placés côte à côte dans le bon ordre.

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

cela devrait fonctionner

2

Je voulais juste ajouter à ce que @aioobe mentionné ci-dessus ...

Dans cette approche que vous utilisez HTML au code couleur de votre texte. Bien que ce soit l'un des moyens les plus fréquemment utilisés pour coder en couleur le texte de l'étiquette, mais n'est pas le moyen le plus efficace de le faire .... compte tenu du fait que chaque étiquette conduira à l'analyse, au rendu, etc. Si vous avez de grandes formes d'interface utilisateur à afficher, chaque milliseconde compte pour donner une bonne expérience utilisateur.

Vous voudrez peut-être passer par le bas et essayer ....

Jide OSS (situé àhttps://jide-oss.dev.java.net/) est une bibliothèque open source professionnelle avec une quantité vraiment bien de composants Swing prêt à l'emploi. Ils ont une version améliorée de JLabel nommée StyledLabel. Ce composant résout parfaitement votre problème ... Voyez si leurs licences open source s'appliquent à votre produit ou non.

Ce composant est très facile à utiliser. Si vous voulez voir une démo de leurs composants Swing, vous pouvez exécuter leur démo WebStart située au www.jidesoft.com (http://www.jidesoft.com/products/1.4/jide_demo.jnlp). Toutes leurs offres sont démo ... et la meilleure partie est que StyledLabel est comparé à JLabel (HTML et sans) en termes de vitesse!:-)

Une capture d'écran du test de perf peut être vu à (http://img267.imageshack.us/img267/9113/styledlabelperformance.png)

6
object.setForeground(Color.green); 

* couleur que vous souhaitez * objet déclaré plus tôt

+6

pas mal - mais Nothin g nouveau par rapport aux réponses précédentes :-) – kleopatra

2

L'un des inconvénients de l'utilisation de HTML pour labels est quand vous avez besoin d'écrire un programme localisable (qui devrait fonctionner dans plusieurs langues). Vous aurez des problèmes pour changer seulement le texte traduisible. Ou vous devrez mettre tout le code HTML dans vos traductions qui est très difficile, je dirais même :) absurde

de 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> 
Questions connexes