2016-02-26 34 views
0

我在SWT中有一個組合下拉列表,並且已經考慮根據一些條件爲我的列表中的不同項目設置不同的顏色。我會稍後決定(即如果字符串有超過5個字符的項目應該有一個紅色的背景,否則它應該是綠色的)如何設置SWT組合中的單個項目的不同顏色

我設法改變整個組合小部件的背景,但注意到沒有方法來改變其個別項目的背景。

Color colorGreenSWT = new Color(null, 0, 255, 0); 
Combo combo = new Combo(comp, SWT.DROP_DOWN); 
String[] languages = { "i", "it", "item", "items", "more_items" }; 
for (int i = 0; i < languages.length; i++) 
    combo.add(languages[i]); 
combo.setBackground(colorGreenSWT); 

那麼有沒有什麼方法可以爲每個項目選擇背景顏色?

回答

1

組合不允許。星雲項目有一個可能會讓你感興趣的TableCombo Widget [1]。此外,SWT還有一個名爲CCombo的擴展自定義組合,您可能需要查看[2]。

[1] https://eclipse.org/nebula/widgets/tablecombo/tablecombo.php

[2] http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fswt%2Fcustom%2FCCombo.html

+2

的'CCombo'是一個定製窗口小部件,從一個文本窗口小部件組裝旁邊和一個'List'一個按鈕,下拉。該列表不允許單獨着色的項目。 –

+1

嘗試了星雲TableCombo,雖然它確實走了很長的路要成爲我需要我仍然無法改變單個項目的背景顏色。不過,我可以添加圖像並更改文本的字體和顏色,所以我可能會隨之去做。非常感謝! –

+1

其實我找到了。 TableCombo對象可以調用getTable(),您可以使用它來定義您自己的TableItem對象,該對象可以獨立設置爲它自己的背景色。 –

相關問題