Как заставить виджет SWT StyledText всегда прокручиваться до конца

#java #swt #styledtext

#java #swt #styledtext

Вопрос:

Как мне заставить виджет SWT StyledText всегда оставаться прокрученным до конца, даже когда к нему добавляются новые строки текста?

Я попытался поискать некоторые функции, которые могли бы позволить мне установить положение прокрутки, но я не могу найти ни одной. Также нет свойства, которое позволяет мне это делать.

Ответ №1:

Просто добавьте эту строку после добавления текста:

 styledText.setTopIndex(styledText.getLineCount() - 1);
  

Если вы меняете содержимое вашего StyledText более чем в одном месте, используйте прослушиватель Modify , чтобы не повторяться:

 styledText.addListener(SWT.Modify, new Listener(){
    public void handleEvent(Event e){
        styledText.setTopIndex(styledText.getLineCount() - 1);
    }
});
  

Ответ №2:

Другой вариант:

     styledText.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            styledText.setTopIndex(styledText.getLineCount() - 1);

        }
    });
  

Комментарии:

1. Мне больше нравится это решение, но я бы предпочел использовать e.widget