如何在Java中设置标签(彩色文本)的颜色?

如何设置标签文本的颜色?

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

我可以在一个标签中使用两种不同的颜色吗?

例如这里:

"Text Color:"为黑色, "Red"为红色。

当然。 要设置前景色,只需使用label.setForeground(Color.RED)

对于双色问题 :例如,您可以在标签文本中使用html:

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

产生

在这里输入图像说明

另一个解决scheme当然是使用两个单独的JLabel,每个JLabel都有其前景色。

您可以通过更改前景类别来设置JLabel的颜色:

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

据我所知,创build双色标签最简单的方法是简单地制作两个标签,并确保按照正确的顺序放置在一起。

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

这应该工作

 object.setForeground(Color.green); 

*您希望的任何颜色*对象被宣布更早

只是想添加上面提到的@aioobe

在这种方法中,您使用HTML来为您的文本添加颜色代码。 尽pipe这是对标签文本进行颜色编码的最常用的方法之一, 但并不是最有效的方式来做到这一点 ……考虑到每个标签都会导致HTML被parsing,呈现等事实。如果你有大量的用户界面表单要显示,每一毫秒计数,以提供良好的用户体验。

你可能想要通过下面,并尝试一下….

Jide OSS位于 https://jide-oss.dev.java.net/ )是一个专业的开源库,有很多Swing组件可以使用。 他们有一个名为StyledLabel的JLabel的改进版本。 该组件完美地解决了您的问题… 查看他们的开源许可是否适用于您的产品。

这个组件非常容易使用。 如果你想看到他们的Swing组件的演示,你可以运行他们的WebStart演示,位于http://www.jidesoft.comhttp://www.jidesoft.com/products/1.4/jide_demo.jnlp )。 所有他们的产品都是demo'd …最好的部分是StyledLabel与JLabel(HTML和无)在速度方面进行比较! 🙂

性能testing的屏幕截图可以在( http://img267.imageshack.us/img267/9113/styledlabelperformance.png

使用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>