SWT Java:如何在Label控件中更改文本的颜色?

时间:2011-10-12 14:30:16

标签: java fonts colors swt label

我知道如何更改大小,样式但是如何设置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类中没有color属性。

2 个答案:

答案 0 :(得分:23)

确保不混合使用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));

(不要丢弃系统颜色。)

答案 1 :(得分:2)

myLabel.setForeground(Color fg).

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

有关详细信息:see this

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