2013-12-18 2 views
0

У меня есть область SWT styledText с scrollBar. Я хотел бы, чтобы полоса прокрутки прокручивалась до заданного индекса, но я испытываю некоторые трудности.Прокрутка SWT scrollBar

Я пробовал:

ScrollBar vBarScroll = styledText.getVerticalBar(); 
vBarScroll.setSelection(textIndex); 
styledText.showSelection(); 

Выбирает текст, который я не хочу, а также имеющие трудности для отображения. Это тоже много.

Другая вещь, которую я попытался это:

styledText.setTopIndex(textIndex); 

Но это не работает, либо

+0

Единицы измерения для полосы прокрутки являются пиксели не Коррекции символов. Единицы для 'setTopIndex' являются линиями. –

ответ

0

Попробуйте это:

lineNoIndex является индексом строки. 0 -> 1-я линия 1-> Вторая линия и т.д.

if(lineNoIndex >= 0 && lineNoIndex < styledText.getLineCount()) { 
     int offset = lineNoIndex == 0 ? 0:styledText.getOffsetAtLine(lineNoIndex) - 1; 
     styledText.setCaretOffset(offset); 
     styledText.setTopIndex(offset == 0 ? 0:lineNoIndex - 1); 
} 
+0

Как вы сохраняете стилизованный текст из списка setTopIndex в 0 каждый раз? – Valkyrie

+0

Непонятно, добавьте еще несколько объяснений –

+0

каждый раз, когда вызывается метод .setText, метод .setTopIndex вызывается автоматически со значением 0. Мне было интересно, как остановить это, потому что это заставляет текст в этой области прыгать и выглядят нервозными – Valkyrie

Смежные вопросы