2016-02-19 2 views
0

Я пытаюсь установить BorderColor для виджета StyledText. Объект StyleRange Позволяет установить поля borderColor и borderStyle.Set StyledText BorderColor with StyleRange

Мой код выглядит следующим образом:

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); 

Но этот код не устанавливает цвет границы. Я знаю, что есть обходной путь, используя прослушиватель красок, но почему приведенный выше пример не работает?

ответ

0

Вы не указали начальную позицию и длину для диапазона стилей, чтобы на самом деле ничего не стилизовать.

Для того чтобы быть ясным StyleRange устанавливает границу вокруг некоторого текста в StyledText, он не устанавливает границу элемента управления.

В качестве примера, вот StyledText с несколькими StyleRanges с указанием границы: Style Ranges

+0

Спасибо за разъяснение! Я думал, что StyleRange можно использовать и для всего Control. Затем я придерживаюсь метода Paint Listener, как описано [здесь] (http://stackoverflow.com/questions/11522774/draw-outline-border-on-text-component). –