2015-04-24 49 views
0

我遇到問題ScrolledForm。我正在嘗試更改ScrolledForm正文中定義的Label的背景和前景色,但它似乎不起作用。Java SWT ScrolledForm背景顏色

在我的代碼片段中,我想lblWhat有一個黑色的背景和白色的前景。

這裏是我的代碼片段:

ScrolledForm scrldfrmNewScrolledform = formToolkit.createScrolledForm(parent); 

scrldfrmNewScrolledform.setLayoutData(gd); 

scrldfrmNewScrolledform.setFont(SWTResourceManager.getFont("Segoe UI", 16, SWT.NORMAL)); 
scrldfrmNewScrolledform.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_BACKGROUND)); 
scrldfrmNewScrolledform.getBody().setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); 
scrldfrmNewScrolledform.setImage(SWTResourceManager.getImage(EPRForm.class, "/icons/AFCCEPR.png")); 
scrldfrmNewScrolledform.setBounds(10, 10, 430, 280); 
formToolkit.paintBordersFor(scrldfrmNewScrolledform); 
scrldfrmNewScrolledform.setText("ePR (electronic Purchase Request)"); 

Label lblName = new Label(scrldfrmNewScrolledform.getBody(), SWT.NONE); 
lblName.setBounds(10, 21, 55, 15); 
formToolkit.adapt(lblName, true, true); 
lblName.setText("Name:"); 

text = new Text(scrldfrmNewScrolledform.getBody(), SWT.BORDER); 
text.setBounds(71, 15, 269, 21); 
formToolkit.adapt(text, true, true); 

Label lblWhat = new Label(scrldfrmNewScrolledform.getBody(), SWT.None); 
lblWhat.setBounds(10, 35, 100, 15); 
lblWhat.setBackground(SWTResourceManager.getColor(SWT.COLOR_BLACK)); 
lblWhat.setForeground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); 
formToolkit.adapt(lblWhat, true, true); 
lblWhat.setText("What do you want?"); 

Label lblItem = new Label(scrldfrmNewScrolledform.getBody(), SWT.None); 
lblItem.setBounds(10, 55, 100, 15); 
formToolkit.adapt(lblItem, true, true); 
lblItem.setText("Items to be Ordered*"); 

txtItems = new Text(scrldfrmNewScrolledform.getBody(), SWT.BORDER | SWT.WRAP | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CANCEL); 
txtItems.setBounds(10, 60, 338, 84); 
formToolkit.adapt(txtItems, true, true); 
+0

順便說一句,你應該看看使用[佈局](http://www.eclipse.org/articles/Article-Understanding-Layouts/瞭解-Layouts.htm)。如果更改字體或嘗試調整窗口大小,'setBounds'會導致問題。 –

回答

1

你似乎使用FormToolkitFormToolkit.adapt方法強制控件顏色爲表單設置的顏色(通常爲白色背景和黑色文本)。

對於單個控件,您可以嘗試在調用adapt之後調用setBackgroundsetForeground

您可以設置整個表格的顏色與

FormColors colors = toolkit.getColors(); 

colors.setBackground(...); 
colors.setForeground(...); 
+0

太好了,修好了,感謝您的幫助! – kevin