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

Posted

技术标签:

【中文标题】如何在 Java 中设置标签(彩色文本)的颜色?【英文标题】:How do I set the colour of a label (coloured text) in Java? 【发布时间】:2011-02-27 07:45:11 【问题描述】:

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

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

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

例如这里:

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

【问题讨论】:

【参考方案1】:

单色前景色

label.setForeground(Color.RED)

对于同一标签中的多个前景色:

(我可能会使用GridLayout 或其他东西将两个标签并排放置,但这里是……)

您可以在标签文本中使用 html,如下所示:

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

产生:

【讨论】:

【参考方案2】:

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

JLabel title = new JLabel("I love ***!", JLabel.CENTER);

title.setForeground(Color.white);

据我所知,创建您想要的双色标签的最简单方法是简单地制作两个标签,并确保它们以正确的顺序彼此相邻放置。

【讨论】:

【参考方案3】:
JLabel label = new JLabel ("Text Color: Red");
label.setForeground (Color.red);

这应该可以工作

【讨论】:

【参考方案4】:
object.setForeground(Color.green);

*任何你想要的颜色 *对象被提前声明

【讨论】:

没有错 - 但与之前的答案相比没有什么新的 :-)【参考方案5】:

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

【讨论】:

【参考方案6】:

只是想补充一下上面提到的 @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) 看到

【讨论】:

以上是关于如何在 Java 中设置标签(彩色文本)的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

Ag Grid 部分单元格格式 - 例如如何在单元格中设置一些文本样式 - 粗体、斜体、彩色(但不是其他文本)

Java 在禁用的文本字段中设置字体颜色

Kivy:在kv中设置禁用按钮上的文本颜色

如何在 Nativescript HtmlView 标签中设置链接颜色?

如何在flex中设置文本突出显示颜色?

如何在 Gtk3 可选标签中设置光标颜色?