如何在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.com ( http://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>