2008-09-08 11 views
51

C'est assez simple, je viens d'un fond swing/awt.Réglage des couleurs dans SWT

Je me demandais juste ce que la bonne façon de définir la couleur d'arrière-plan pour un widget SWT est?

J'ai essayé:

widget.setBackground(); 

Sauf Je ne sais pas comment créer la couleur objet dans SWT?

Répondre

52

Pour créer une couleur, essayez ceci:

Device device = Display.getCurrent(); 
Color red = new Color (device, 255, 0, 0); 
+0

Cela a fonctionné. Merci, votre homme. Je ne pouvais tout simplement pas trouver d'où me procurer l'appareil actuel. –

+22

Assurez-vous de ne pas oublier de jeter cette couleur! Sinon, vous ferez des fuites de ressources natives. – Eddie

10

Rappelez-vous que dans SWT vous devez explicitement disposer des ressources que vous créez lorsque vous avez terminé avec eux. Cela inclut les widgets, les polices, les couleurs, les images, les affichages, les imprimantes et les CG. Si vous ne disposez pas de ces ressources, votre application atteindra éventuellement la limite de ressources de votre système d'exploitation et l'application cessera de fonctionner.

Voir aussi: SWT: Managing Operating System Resources

+1

Je vous suggère d'utiliser ce [SWTResourceManager] (https://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/ui/SWTResourceManager.html) – Campa

72

Pour les couleurs standard (y compris les couleurs et les couleurs standard par défaut utilisés par le système d'exploitation) Utiliser Display.getSystemColor(int) et passer la constante SWT.COLOR_* pour la couleur que vous voulez.

Display display = Display.getCurrent(); 
Color blue = display.getSystemColor(SWT.COLOR_BLUE); 
Color listBackground = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND); 

Notez que vous n'avez pas besoin de disposer ces couleurs car SWT les a créées.

+3

Ceci devrait être votre standard pour toute couleur prise en charge dans l'ensemble SWT.COLOR_ *. Comme indiqué, vous n'avez pas besoin de vous rappeler de disposer des couleurs créées de cette façon. –

+0

'SWT.COLOR_LIST_BACKGROUND': génial. – Campa