[英]How do I set the colour of a label (coloured text) in Java?
如何設置標簽文本的顏色?
myLabel.setText("Text Color: Red");
myLabel.???
我可以在一個標簽中使用兩種不同的顏色嗎?
例如這里:
"Text Color:"
為黑色, "Red"
為紅色。
label.setForeground(Color.RED)
(我可能會使用GridLayout
或其他東西將兩個標簽並排放置,但這里是......)
您可以在標簽文本中使用 html,如下所示:
frame.add(new JLabel("<html>Text color: <font color='red'>red</font></html>"));
產生:
您可以通過更改前景類別來設置 JLabel 的顏色:
JLabel title = new JLabel("I love stackoverflow!", JLabel.CENTER);
title.setForeground(Color.white);
據我所知,創建所需的雙色標簽的最簡單方法是簡單地制作兩個標簽,並確保它們以正確的順序彼此相鄰放置。
JLabel label = new JLabel ("Text Color: Red");
label.setForeground (Color.red);
這應該工作
object.setForeground(Color.green);
*任何你想要的顏色 *對象被提前聲明
使用 HTML 作為標簽的缺點之一是當您需要編寫一個可本地化的程序(它應該可以在多種語言中工作)時。 您將遇到僅更改可翻譯文本的問題。 否則您將不得不將整個 HTML 代碼放入您的翻譯中,這非常尷尬,我什至會說很荒謬:)
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>
只是想補充上面提到的@aioobe ...
在這種方法中,您使用 HTML 對文本進行顏色編碼。 雖然這是對標簽文本進行顏色編碼的最常用方法之一,但並不是最有效的方法......考慮到每個標簽都會導致 HTML 被解析、呈現等這一事實。如果你有要顯示的大型 UI 表單,每一毫秒都很重要,以提供良好的用戶體驗。
您可能想通過以下內容嘗試一下....
Jide OSS (位於https://jide-oss.dev.java.net/ )是一個專業的開源庫,擁有大量可供使用的 Swing 組件。 他們有一個名為 StyledLabel 的 JLabel 的改進版本。 該組件完美地解決了您的問題......看看他們的開源許可是否適用於您的產品。
該組件非常易於使用。 如果您想查看他們的 Swing 組件的演示,您可以運行位於www.jidesoft.com ( http://www.jidesoft.com/products/1.4/jide_demo.jnlp ) 的 WebStart 演示。 他們所有的產品都經過演示......最好的部分是 StyledLabel 在速度方面與 JLabel(HTML 和沒有)進行了比較! :-)
性能測試的屏幕截圖可以在 ( http://img267.imageshack.us/img267/9113/styledlabelperformance.png ) 看到
myLabel.setForeground(new java.awt.Color(255, 0, 0));
括號中的數字描述了紅、綠、藍顏色值的組合,值越高,顏色越淺,值可以在 0 到 255 之間變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.