Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置树的文本颜色?_Java_Eclipse_Jakarta Ee_Eclipse Plugin_Eclipse Rcp - Fatal编程技术网

Java 设置树的文本颜色?

Java 设置树的文本颜色?,java,eclipse,jakarta-ee,eclipse-plugin,eclipse-rcp,Java,Eclipse,Jakarta Ee,Eclipse Plugin,Eclipse Rcp,我正在开发Eclipse插件。这里我创建了一个单独的视图,现在我想格式化树节点的颜色 这些是createpartcontrol方法中存在的代码 ScrolledComposite sc = new ScrolledComposite(parent, SWT.V_SCROLL ); Composite composite1 = new Composite(sc, SWT.NONE); Composite composite_1 = creatingcomposite(composite1)

我正在开发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"); 
现在我想要一些不同的颜色,比如子主题文本上的黄色

TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
subsubItem.setText(new String[] { "Function Name:          "+ errorPreTest11.description.get(j).function });
为此,我尝试将SWT.COLOR\u设置为蓝色,但它不起作用

使用

item.setForeground(tree.getDisplay().getSystemColor(SWT.COLOR_BLUE));
您也可以创建自己的颜色,但如果这样做,则必须在创建完成后将其丢弃。

使用

item.setForeground(tree.getDisplay().getSystemColor(SWT.COLOR_BLUE));
您也可以创建自己的颜色,但如果您这样做,则必须在完成后将其处理。

我建议您使用TreeViewer。在这种情况下,您将拥有在查看器上设置LabelProvider的功能。Label provider有一个名为StyledCellLabelProvider的子类,您可以成功地扩展该子类以提供如下标签样式:有关更多格式化选项,请参见类

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);
    }
}
我建议你使用TreeViewer。在这种情况下,您将拥有在查看器上设置LabelProvider的功能。Label provider有一个名为StyledCellLabelProvider的子类,您可以成功地扩展该子类以提供如下标签样式:有关更多格式化选项,请参见类

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);
    }
}

感谢greg-449,当我坚持使用插件时,你总是在那里寻求帮助我们如何加粗字符?加粗没有什么特别的,你必须用合适的字体来使用setFont。感谢greg-449当我坚持使用插件时,你总是在那里寻求帮助如何将字符加粗?加粗没有具体规定,您必须使用合适字体的setFont。