我正在研究Eclipse插件。在这里,我创建了一个单独的视图,现在我想格式化树节点的颜色。
这些是createpartcontrol方法中的代码。
ScrolledComposite sc = new ScrolledComposite(parent, SWT.V_SCROLL );
Composite composite1 = new Composite(sc, SWT.NONE);
Composite composite_1 = creatingcomposite(composite1);
Tree tree = new Tree(composite_1, SWT.FULL_SELECTION );
TreeItem item = new TreeItem(tree, SWT.NONE);
这里我想设置一些像蓝色的颜色。
item.setText("This is sparta");
现在我想要一些不同的颜色,比如在sububitem文本上的黄色。
TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
subsubItem.setText(new String[] { "Function Name: "+ errorPreTest11.description.get(j).function });
为此,我尝试设置SWT.COLOR_BLUE,但它不起作用。
答案 0 :(得分:4)
使用
item.setForeground(tree.getDisplay().getSystemColor(SWT.COLOR_BLUE));
您也可以创建自己的颜色,但如果这样做,则必须在完成后将其丢弃。
答案 1 :(得分:0)
我建议您使用TreeViewer
。在这种情况下,您可以在查看器上设置LabelProvier
。 Label提供程序有一个名为StyledCellLabelProvider
的子类,您可以成功扩展它以提供标签的样式,如下所示:(另请参阅TextStyle类以获取更多格式化选项)。
public class MyStyledLabelProvider extends StyledCellLabelProvider {
private Styler defaultStyler;
public MyStyledLabelProvider () {
defaultStyler = new Styler() {
@Override
public void applyStyles(TextStyle textStyle) {
textStyle.strikeout = true;
}
};
}
@Override
public void update(ViewerCell cell) {
Object element = cell.getElement();
StyledString styledString = getStyledString(element);
cell.setText(styledString.toString());
cell.setStyleRanges(styledString.getStyleRanges());
super.update(cell);
}
@SuppressWarnings("unchecked")
private StyledString getStyledString(Object element) {
return new StyledString("Cell string", defaultStyler);
}
}