我在 SWT 中有一个 Tree-Viewer。我在其中选择一个节点/行,然后将该行的背景颜色更改为绿色。
现在我正在禁用树查看器,但现在洞树查看器被禁用,背景颜色也消失了。
我知道这是因为我禁用了查看器。但是,在禁用查看器后,有什么方法可以使所选行的背景颜色与我们设置的相同。
我在 SWT 中有一个 Tree-Viewer。我在其中选择一个节点/行,然后将该行的背景颜色更改为绿色。
现在我正在禁用树查看器,但现在洞树查看器被禁用,背景颜色也消失了。
我知道这是因为我禁用了查看器。但是,在禁用查看器后,有什么方法可以使所选行的背景颜色与我们设置的相同。
考虑使用 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);
}
}