使用 StyleRange 设置 StyledText BorderColor

Set StyledText BorderColor with StyleRange

我正在尝试设置 StyledText 小部件的 BorderColor。 StyleRange 对象允许我设置字段 borderColor 和 borderStyle。

我的代码如下所示:

StyledText test = new StyledText(parent, SWT.BORDER);

Display display = Display.getCurrent();

Color color = display.getSystemColor(SWT.COLOR_RED);

StyleRange style = new StyleRange();
style.borderColor = color;
style.borderStyle = SWT.BORDER_SOLID;

test.setStyleRange(style);

但是这段代码没有设置边框的颜色。我知道有一个使用 paint listener 的解决方法,但为什么上面的例子不起作用?

您尚未指定样式范围的起始位置和长度,因此它实际上没有设置任何样式。

需要说明的是,StyleRangeStyledText 中的某些文本周围设置了边框,但并未设置控件的边框。

例如,这里有一个 StyledText 和几个 StyleRanges 指定一个边框: