2011-10-12 17 views
7

Sé cómo cambiar el tamaño, el estilo, pero ¿cómo puedo establecer el color del texto en el control de etiqueta? Aquí está mi código hasta ahora:SWT Java: cómo cambiar el color del texto en el control de etiqueta?

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])); 

Veo que no hay una propiedad de color en la clase FontData.

Respuesta

21

Asegúrese de no mezclar SWT y AWT colores, y si se construye un objeto Color, asegúrese deséchalo. ¿Quieres algo como:

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

O simplemente puede utilizar los colores del sistema incorporadas:

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

(. No deseche los colores del sistema)

2
myLabel.setForeground(Color fg). 

de color: La clase Color se utiliza para encapsular colores en el espacio de color sRGB por defecto o colores en los espacios de color arbitrarios identificados por un ColorSpace.

Para más información: see this

para el verde que sería algo así como: myLabel.setForeground(new org.eclipse.swt.graphics.Color(getDisplay(), 102, 255, 102));

+0

No mezcle AWT 'color 'con SWT' Color'. Desea 'new org.eclipse.swt.graphics.Color (getDisplay(), 102, 255, 102))'. Y debe 'disponer' el 'Color' cuando haya terminado con él. –

+0

¡Uy corregido! – COD3BOY

Cuestiones relacionadas