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

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

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

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

例如这里:

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

【问题讨论】:

    标签: java text colors label fonts


    【解决方案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 stackoverflow!", 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) 看到

            【讨论】:

              猜你喜欢
              • 2018-09-14
              • 1970-01-01
              • 1970-01-01
              • 2016-03-20
              • 1970-01-01
              • 2022-06-25
              • 2015-04-22
              • 2015-09-04
              • 1970-01-01
              相关资源
              最近更新 更多