簡體   English   中英

如何在 Java 中設置標簽(彩色文本)的顏色?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM