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

时间:2010-06-03 13:24:45

标签: java text colors label fonts

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

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

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

例如:

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

6 个答案:

答案 0 :(得分:120)

不确定。要设置前景色,只需使用label.setForeground(Color.RED)

对于双色问题:您可以在标签文字中使用html:

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

产生

enter image description here

另一种解决方案当然是使用两个独立的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测试的屏幕截图