2011-10-12 6 views
7

So come cambiare dimensione, stile, ma come posso impostare il colore del testo nel controllo Label? Ecco il mio codice finora:SWT Java: come cambiare il colore del testo nel controllo 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])); 

Vedo che non esiste una proprietà di colore nella classe FontData.

risposta

21

Assicurarsi di non mescolare SWT e AWT i colori, e se si costruisce un oggetto Color, assicuratevi smaltirlo. Volete qualcosa di simile:

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

Oppure si può semplicemente utilizzare i colori di sistema built-in:

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

(. Non gettare i colori di sistema)

2
myLabel.setForeground(Color fg). 

colore: La classe colore è utilizzato per incapsulare colori nello spazio colore sRGB predefinito o colori in spazi colore arbitrarie identificati da un ColorSpace.

Per maggiori informazioni: see this

Per il verde che sarebbe qualcosa di simile: myLabel.setForeground(new org.eclipse.swt.graphics.Color(getDisplay(), 102, 255, 102));

+0

Non mescolare AWT 'Colore 'con SWT' Colore'. Vuoi 'new org.eclipse.swt.graphics.Color (getDisplay(), 102, 255, 102))'. E hai bisogno di "eliminare" il "Colore" quando hai finito. –

+0

oops corretto! – COD3BOY

Problemi correlati