如何设置标签文字的颜色?
myLabel.setText("Text Color: Red");
myLabel.???
我可以在一个标签中使用两种单独的颜色吗?
例如:
"Text Color:"
为黑色,"Red"
为红色。
答案 0 :(得分:120)
不确定。要设置前景色,只需使用label.setForeground(Color.RED)
。
对于双色问题:您可以在标签文字中使用html:
frame.add(new JLabel("<html>Text color: <font color='red'>red</font></html>"));
产生
另一种解决方案当然是使用两个独立的JLabel,每个JLabel都有前景色。
答案 1 :(得分:50)
您可以通过更改前景类别来设置JLabel的颜色:
JLabel title = new JLabel("I love stackoverflow!", JLabel.CENTER);
title.setForeground(Color.white);
据我所知,创建所需双色标签的最简单方法是简单地制作两个标签,并确保它们以正确的顺序彼此相邻放置。
答案 2 :(得分:19)
JLabel label = new JLabel ("Text Color: Red");
label.setForeground (Color.red);
这应该有效
答案 3 :(得分:7)
object.setForeground(Color.green);
*你想要的任何颜色 *之前声明的对象
答案 4 :(得分:3)
将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>
答案 5 :(得分:2)
只是想加上上面提到的 @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)
看到perf测试的屏幕截图