2008-09-08 12 views
51

Esto es bastante simple, vengo de un fondo swing/awt.Configuración de colores en SWT

Me pregunto cuál es la forma correcta de establecer el color de fondo para un widget SWT.

He estado tratando:

widget.setBackground(); 

Excepto que no tienen idea de cómo crear el objeto de color en SWT?

Respuesta

52

para crear un color, intente esto:

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

Eso funcionó. Gracias, eres el hombre. Simplemente no pude encontrar dónde obtener el dispositivo actual. –

+22

¡Asegúrese de no olvidar deshacerse de este color! De lo contrario, perderá recursos nativos. – Eddie

10

recordar que en SWT tienen que ser desechados de manera explícita cualquier recurso que se crean cuando haya terminado con ellos. Esto incluye widgets, fuentes, colores, imágenes, pantallas, impresoras y GC. Si no dispone de estos recursos, con el tiempo su aplicación alcanzará el límite de recursos de su sistema operativo y la aplicación dejará de funcionar.

Consulte también: SWT: Managing Operating System Resources

+1

Sugiero que use esto [SWTResourceManager] (https://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/ui/SWTResourceManager.html) – Campa

72

Para colores estándar (incluyendo colores comunes y colores predeterminados utilizados por el sistema operativo) Usar Display.getSystemColor(int), y pase la constante SWT.COLOR_* para el color que desee.

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

Tenga en cuenta que no necesita deshacerse de estos colores porque SWT los creó.

+3

Este debería ser su estándar para cualquier color admitido en el conjunto SWT.COLOR_ *. Como se dijo, no necesita recordar deshacerse de los colores creados de esta manera. –

+0

'SWT.COLOR_LIST_BACKGROUND': impresionante. – Campa