1

我在 SWT 中有一个 Tree-Viewer。我在其中选择一个节点/行,然后将该行的背景颜色更改为绿色。

现在我正在禁用树查看器,但现在洞树查看器被禁用,背景颜色也消失了。

我知道这是因为我禁用了查看器。但是,在禁用查看器后,有什么方法可以使所选行的背景颜色与我们设置的相同。

4

1 回答 1

0

考虑使用 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);
    }
}
于 2013-10-23T16:55:15.027 回答