Java 使用StyleRange设置StyledText BorderColor

Java 使用StyleRange设置StyledText BorderColor,java,swt,Java,Swt,我正在尝试设置小部件的边框颜色。 该对象允许我设置borderColor和borderStyle字段 我的代码如下所示: StyledText test = new StyledText(parent, SWT.BORDER); Display display = Display.getCurrent(); Color color = display.getSystemColor(SWT.COLOR_RED); StyleRange style = new StyleRange(); st

我正在尝试设置小部件的边框颜色。 该对象允许我设置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有一个解决方法,但为什么上面的示例不起作用

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

需要澄清的是,
StyleRange
StyledText
中的某些文本周围设置边框,但它不设置控件的边框

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

感谢您的澄清!我认为样式范围也可以用于整个控件。然后我坚持使用如上所述的Paint Listener方法。