2016-02-26 58 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对象,该对象可以独立设置为它自己的背景色。 –