2010-06-03 66 views

Trả lời

103

chắc. Để đặt màu nền trước, chỉ cần sử dụng label.setForeground(Color.RED).

Đối với câu hỏi hai màu: Bạn có thể ví dụ như sử dụng html trong bạn nhãn văn:

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

sản xuất

enter image description here

Một giải pháp khác là tất nhiên để sử dụng hai JLabels riêng biệt, mỗi cái có màu nền trước của nó.

42

Bạn có thể thiết lập màu sắc của một JLabel bằng cách thay đổi các loại tiền cảnh:

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

title.setForeground(Color.white); 

Theo như tôi biết, cách đơn giản nhất để tạo ra các nhãn hai màu bạn muốn chỉ đơn giản là làm cho hai nhãn, và đảm bảo chúng được đặt cạnh nhau theo đúng thứ tự.

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

này nên làm việc

2

Chỉ muốn thêm vào những gì @aioobe nêu trên ...

Trong phương pháp mà bạn sử dụng HTML để mã màu văn bản của bạn. Mặc dù đây là một trong những cách được sử dụng thường xuyên nhất để tô màu mã văn bản nhãn, nhưng không phải là cách hiệu quả nhất để làm điều đó .... xem xét thực tế là mỗi nhãn sẽ dẫn đến HTML được phân tích cú pháp, hiển thị, v.v. Nếu bạn có các biểu mẫu giao diện người dùng lớn được hiển thị, mỗi mili giây được tính để cung cấp trải nghiệm người dùng tốt.

Bạn có thể muốn đi qua bên dưới và cung cấp cho nó một thử ....

Jide OSS (tọa lạc tạihttps://jide-oss.dev.java.net/) là một chuyên gia thư viện mã nguồn mở với một số lượng thực sự tốt của các thành phần Swing sẵn sàng sử dụng. Họ có một phiên bản cải tiến của JLabel có tên StyledLabel. Thành phần đó giải quyết vấn đề của bạn một cách hoàn hảo ... Xem liệu giấy phép nguồn mở của họ có áp dụng cho sản phẩm của bạn hay không.

Thành phần này rất dễ sử dụng. Nếu bạn muốn xem bản demo của các thành phần Swing của họ, bạn có thể chạy bản demo WebStart của họ tại www.jidesoft.com (http://www.jidesoft.com/products/1.4/jide_demo.jnlp). Tất cả các dịch vụ của họ là demo'd ... và phần tốt nhất là StyledLabel được so sánh với JLabel (HTML và không có) về mặt tốc độ!:-)

Một ảnh chụp màn hình của thử nghiệm về hiệu suất có thể được nhìn thấy ở (http://img267.imageshack.us/img267/9113/styledlabelperformance.png)

6
object.setForeground(Color.green); 

* bất kỳ màu nào bạn muốn * đối tượng được tuyên bố trước đó

+6

không sai - nhưng nothin g mới so với các câu trả lời trước đó :-) – kleopatra

2

Một trong những nhược điểm của việc sử dụng HTML cho nhãn là khi bạn cần viết một chương trình có thể bản địa hóa (chương trình sẽ hoạt động ở một số ngôn ngữ). Bạn sẽ có vấn đề chỉ thay đổi văn bản có thể dịch. Hoặc bạn sẽ phải đưa toàn bộ mã HTML vào bản dịch của bạn mà là rất vụng về, tôi thậm chí có thể nói ngớ ngẩn :)

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> 
Các vấn đề liên quan