2010-06-03 27 views

Odpowiedz

103

pewien. Aby ustawić kolor pierwszego planu, po prostu użyj label.setForeground(Color.RED).

Na pytanie dwukolorowej: Można na przykład używać HTML w etykiecie tekstu:

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

produkuje

enter image description here

Innym rozwiązaniem jest oczywiście użycie dwóch oddzielne JLabele, z których każda ma swój kolor pierwszego planu.

42

Można ustawić barwę JLabel zmieniając kategorię pierwszoplanowy:

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

title.setForeground(Color.white); 

O ile mi wiadomo, to najprostszy sposób, aby utworzyć etykietę dwukolorowej chcesz to po prostu zrobić dwie etykiety, i upewnij się, że zostaną umieszczone obok siebie w odpowiedniej kolejności.

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

to powinno działać

2

Chciałem tylko dodać do tego, co @aioobe wspomniano wyżej ...

W tym podejściu używać HTML kod koloru tekstu. Chociaż jest to jeden z najczęściej używanych sposobów kodowania tekstu etykiety na etykiecie, , ale nie jest to najskuteczniejszy sposób, aby to zrobić: .... biorąc pod uwagę fakt, że każda etykieta doprowadzi do przetworzenia kodu HTML, renderowania itp. Jeśli masz duże formularze interfejsu, które mają być wyświetlane, liczy się każda milisekunda, aby zapewnić dobre wrażenia użytkownika.

Możesz przejść niżej i spróbować ....

Jide OSS (położony whttps://jide-oss.dev.java.net/) jest profesjonalnym biblioteka open source z naprawdę dobrej ilości składników Swing gotowy do użycia. Mają znacznie ulepszoną wersję JLabel o nazwie StyledLabel. Ten komponent idealnie rozwiązuje twój problem ... Sprawdź, czy ich licencja open source dotyczy Twojego produktu, czy nie.

Ten komponent jest bardzo łatwy w użyciu. Jeśli chcesz zobaczyć wersję demonstracyjną Swing Components, możesz uruchomić demo WebStart pod adresem: www.jidesoft.com (http://www.jidesoft.com/products/1.4/jide_demo.jnlp). Wszystkie ich oferty są demo ... a najlepsze jest to, że StyledLabel jest porównywany z JLabel (HTML i bez) pod względem szybkości!:-)

zrzut ekranu z testów perf widać w (http://img267.imageshack.us/img267/9113/styledlabelperformance.png)

6
object.setForeground(Color.green); 

* dowolnego koloru chcesz * Obiekt zadeklarowane wcześniej

+6

nie źle - ale Nothin g nowy w porównaniu do wcześniejszych odpowiedzi :-) – kleopatra

2

Jedną z wad korzystania z kodu HTML Etykiety są wtedy, gdy musisz napisać program do zlokalizowania (który powinien działać w kilku językach). Będziesz mieć problemy, aby zmienić tylko tekst tłumaczenia. Albo trzeba będzie umieścić cały kod HTML do swoich tłumaczeń, co jest bardzo niewygodne, powiedziałbym nawet absurdalne :)

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> 
Powiązane problemy