我在SWT中有一个Tree-Viewer。我在其中选择一个节点/行,然后我将该行的背景颜色更改为绿色。
现在我正在禁用树查看器,但现在已禁用孔树查看器,并且背景颜色也已消失。
我知道这是因为我禁用了观众。但是,在禁用查看器后,是否有任何方法可以使所选行的背景颜色与我们设置的相同。
答案 0 :(得分: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);
}
}