2008-09-08 13 views
51

Jest to bardzo proste, pochodzę z tła swing/awt.Ustawianie kolorów w SWT

Zastanawiam się, jaki jest właściwy sposób ustawiania koloru tła widgetu SWT?

Próbowałem:

widget.setBackground(); 

wyjątkiem nie mam pojęcia w jaki sposób utworzyć obiekt kolorów w SWT?

Odpowiedz

52

Aby utworzyć kolor, spróbuj tego:

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

To działało. Dzięki, twój człowiek. Po prostu nie mogłem znaleźć źródła aktualnego urządzenia. –

+22

Upewnij się, że nie zapomnisz usunąć tego koloru! W przeciwnym razie wyciekniesz zasoby natywne. – Eddie

10

Pamiętaj, że w SWT należy jawnie zbywać żadnych zasobów, które tworzą po zakończeniu pracy z nimi. Dotyczy to widżetów, czcionek, kolorów, obrazów, wyświetlaczy, drukarek i GC. Jeśli nie wyrzucisz tych zasobów, w końcu twoja aplikacja osiągnie limit zasobów twojego systemu operacyjnego i aplikacja przestanie działać.

Zobacz także: SWT: Managing Operating System Resources

+1

Proponuję użyć tego [SWTResourceManager] (https://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/ui/SWTResourceManager.html) – Campa

72

Dla standardowych kolorów (w tym wspólnych kolorów i domyślnych kolorów używanych przez system operacyjny) stosowanie Display.getSystemColor(int) i przechodzą w SWT.COLOR_* stała dla koloru chcesz.

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

Należy pamiętać, że nie trzeba pozbyć się tych kolorów, ponieważ SWT je utworzył.

+3

To powinien być twój standard dla dowolnego koloru obsługiwanego w zestawie SWT.COLOR_ *. Jak już wspomniano, nie musisz pamiętać, aby pozbyć się kolorów stworzonych w ten sposób. –

+0

'SWT.COLOR_LIST_BACKGROUND': niesamowite. – Campa