【问题标题】:SWT Java: how to change colour of text in Label control?SWT Java:如何更改标签控件中文本的颜色?
【发布时间】:2011-12-06 04:52:09
【问题描述】:

我知道如何更改大小、样式,但如何在 Label 控件中设置文本颜色?到目前为止,这是我的代码:

Label myLabel = new Label(shell, SWT.NONE);
myLabel.setText("some text that needs to be for example green");
FontData[] fD = myLabel.getFont().getFontData();
fD[0].setHeight(16);
fD[0].setStyle(SWT.BOLD);
myLabel.setFont( new Font(display,fD[0]));

我看到 FontData 类中没有颜色属性。

【问题讨论】:

    标签: java fonts colors swt label


    【解决方案1】:

    确保您没有混合 SWT 和 AWT 颜色,如果您构建了一个 Color 对象,请确保您处理它。你想要这样的东西:

    final Color myColor = new Color(getDisplay(), 102, 255, 102);
    myLabel.setForeground(color);
    myLabel.addDisposeListener(new DisposeListener() {
        public void widgetDisposed(DisposeEvent e)
        {
            myColor.dispose();
        }
    });
    

    或者你可以只使用内置的系统颜色:

    myLabel.setForeground(getDisplay().getSystemColor(SWT.COLOR_GREEN));
    

    (不处理系统颜色。)

    【讨论】:

      【解决方案2】:
      myLabel.setForeground(Color fg).
      

      color : Color 类用于封装默认 sRGB 颜色空间中的颜色或由 ColorSpace 标识的任意颜色空间中的颜色。

      欲了解更多信息:see this

      对于绿色,它类似于:myLabel.setForeground(new org.eclipse.swt.graphics.Color(getDisplay(), 102, 255, 102));

      【讨论】:

      • 不要将 AWT Color 与 SWT Color 混合使用。你想要new org.eclipse.swt.graphics.Color(getDisplay(), 102, 255, 102))。完成后您需要dispose Color
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      相关资源
      最近更新 更多