【问题标题】:formatting TreeItem Text colour?格式化 TreeItem 文本颜色?
【发布时间】:2013-10-21 09:40:03
【问题描述】:

我正在开发 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_BLUE 但它不起作用。

【问题讨论】:

    标签: java eclipse jakarta-ee eclipse-plugin eclipse-rcp


    【解决方案1】:

    使用

    item.setForeground(tree.getDisplay().getSystemColor(SWT.COLOR_BLUE));
    

    您也可以创建自己的颜色,但如果这样做,您必须在完成后处理掉它们。

    【讨论】:

    • 感谢 greg-449,当我坚持使用插件时,你总是在那里寻求帮助。 :)
    • 如何加粗字符?
    • 粗体没有什么特别的,你必须使用setFont和合适的字体。
    【解决方案2】:

    我建议您使用TreeViewer。在这种情况下,您将拥有在查看器上设置LabelProvier 的功能。标签提供程序有一个名为 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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 2017-05-25
      • 1970-01-01
      相关资源
      最近更新 更多