我目前想基于JFace TreeViewer编写Eclipse编辑器。我在CellLabelProvider中添加了TreeViewer。如果我直接在updateCellLabelProvider方法中将单元格的字体设置为粗体,则标签显示为粗体。

但是我只希望标签的一部分显示为粗体。所以我将StyleRange应用于单元格。在'StyleRange'中选择的颜色可以很好地工作,但是将StyleRange的字体设置为粗体似乎无效。

为什么会这样,我该如何解决?

最佳答案

您可能需要使用基于StyledCellLabelProvider的标签提供程序。
DelegatingStyledCellLabelProvider最容易使用,因为您只需要提供实现DelegatingStyledCellLabelProvider.IStyledLabelProvider的标签提供程序即可。关键方法是

public StyledString getStyledText(Object element);

这样您就可以为每个对象返回一个StyledString

07-26 00:50