如何在 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 部分单元格格式 - 例如如何在单元格中设置一些文本样式 - 粗体、斜体、彩色(但不是其他文本)