2011-10-12 66 views
7

我知道如何更改大小,样式,但是如何在Label控件中设置文本的颜色?这里是我的代码到目前为止:SWT Java:如何更改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类中没有颜色属性。

回答

21

确保您不要混合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类用于封装在默认sRGB颜色空间的颜色或颜色在由ColorSpace标识的任意颜色空间。

欲了解更多信息:see this

绿色IT的会是这样:myLabel.setForeground(new org.eclipse.swt.graphics.Color(getDisplay(), 102, 255, 102));

+0

不要混合使用AWT'颜色'用SWT'Color'。你需要'new org.eclipse.swt.graphics.Color(getDisplay(),102,255,102))''。当你完成它时,你需要''处理'Color'。 –

+0

oops纠正! – COD3BOY