2008-09-08 173 views
51

这很简单,我来自swing/awt背景。在SWT中设置颜色

我只是想知道为SWT小部件设置背景颜色的正确方法是什么?

我一直想:

widget.setBackground(); 

除了我不知道如何在SWT颜色对象?

回答

52

要创建一个颜色,试试这个:

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

工作。 谢谢,你的男人。我只是无法找到从哪里获得当前设备。 – 2008-09-08 17:10:58

+22

确保您不会忘记处理这种颜色!否则,你会泄漏本地资源。 – Eddie 2009-01-27 04:47:43

10

请记住,在SWT必须明确处置你,当你与他们做创建的任何资源。这包括小部件,字体,颜色,图像,显示,打印机和GC。如果您不处理这些资源,最终您的应用程序将达到您的操作系统的资源限制,并且应用程序将停止运行。

参见:SWT: Managing Operating System Resources

+1

我建议你使用这个[SWTResourceManager](https://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/ui/SWTResourceManager.html) – Campa 2015-09-16 08:30:03

72

对于标准色(包括操作系统中常用的颜色和默认的颜色)使用Display.getSystemColor(int),并通过在SWT.COLOR_*常数您想要的颜色。

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

请注意,您不需要配置这些颜色,因为SWT创建了它们。