it-swarm.com.de

Wie stelle ich die Farbe eines Etiketts (farbiger Text) in Java ein?

Wie stelle ich die Farbe des Textes eines Etiketts ein?

myLabel.setText("Text Color: Red");
myLabel.???

Kann ich zwei verschiedene Farben in einem Etikett haben?

Zum Beispiel hier:

Das "Text Color:" schwarz sein und die "Red" rot sein.

58
Stefanos Kargas

Sicher. Verwenden Sie zum Festlegen der Vordergrundfarbe einfach label.setForeground(Color.RED).

Für die zweifarbige Frage: Sie könnten zum Beispiel HTML in Ihrem Etikettentext verwenden:

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

produziert

enter image description here

Eine andere Lösung besteht natürlich darin, zwei separate JLabels zu verwenden, von denen jedes seine Vordergrundfarbe hat.

121
aioobe

Sie können die Farbe eines JLabels festlegen, indem Sie die Vordergrundkategorie ändern:

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

title.setForeground(Color.white);

Soweit ich weiß, können Sie das gewünschte zweifarbige Etikett am einfachsten erstellen, indem Sie einfach zwei Etiketten erstellen und sicherstellen, dass sie in der richtigen Reihenfolge nebeneinander platziert werden.

54
Raven Dreamer
JLabel label = new JLabel ("Text Color: Red");
label.setForeground (Color.red);

das sollte funktionieren

19
Roman
object.setForeground(Color.green);

* jede Farbe, die Sie wünschen * Objekt wird früher deklariert

Einer der Nachteile der Verwendung von HTML für Beschriftungen besteht darin, dass Sie ein lokalisierbares Programm schreiben müssen (das in mehreren Sprachen funktionieren sollte). Sie haben Probleme, nur den übersetzbaren Text zu ändern. Oder Sie müssen den gesamten HTML-Code in Ihre Übersetzungen einfügen, was sehr umständlich ist, ich würde sogar sagen, absurd :)

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>
3
Honza Zidek

Ich wollte nur zu dem hinzufügen, was @ aioobe oben erwähnt hat ...

Bei diesem Ansatz verwenden Sie HTML, um Ihren Text farblich zu kennzeichnen. Dies ist zwar eine der am häufigsten verwendeten Methoden, um den Etikettentext farblich zu kennzeichnen, ist aber nicht die effizienteste Methode .... in Anbetracht der Tatsache, dass jedes Etikett zu HTML führt Analysiert, gerendert usw. Wenn Sie große Benutzeroberflächenformulare anzeigen möchten, zählt jede Millisekunde, um eine gute Benutzererfahrung zu erzielen.

Vielleicht möchten Sie das Folgende durchgehen und es ausprobieren ...

Jide OSS ( gefunden beihttps://jide-oss.dev.Java.net/ ) ist eine professionelle Open-Source-Bibliothek mit einer wirklich guten Anzahl gebrauchsfertiger Swing-Komponenten. Sie haben eine stark verbesserte Version von JLabel namens StyledLabel. Diese Komponente löst Ihr Problem perfekt ... Sehen Sie, ob die Open Source-Lizenzierung für Ihr Produkt gilt oder nicht.

Diese Komponente ist sehr einfach zu bedienen. Wenn Sie eine Demo ihrer Swing-Komponenten sehen möchten, können Sie ihre WebStart-Demo unter www.jidesoft.com ( http://www.jidesoft.com/products/1.4/jide_demo.jnlp ). Alle ihre Angebote wurden vorgeführt ... und das Beste daran ist, dass das StyledLabel in Bezug auf Geschwindigkeit mit JLabel (HTML und ohne) verglichen wird! :-)

Ein Screenshot des Perf-Tests ist zu sehen unter ( http://img267.imageshack.us/img267/9113/styledlabelperformance.png )

2
arcamax