3

How do I get a SWT StyledText widget to always stay scrolled to the end it even as new lines of text gets appended to it?

I tried to look for some functions that could allow me to set the scroll position but I can't find any. There isn't a property that lets me do this either.

Carven
  • 14,988
  • 29
  • 118
  • 161

2 Answers2

10

Simply add this line, after you've added text:

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

If you change the content of your StyledText on more than one place, use a listener on Modify, to not repeat yourself:

styledText.addListener(SWT.Modify, new Listener(){
    public void handleEvent(Event e){
        styledText.setTopIndex(styledText.getLineCount() - 1);
    }
});
the.duckman
  • 6,376
  • 3
  • 23
  • 21
3

Another variation:

    styledText.addModifyListener(new ModifyListener() {

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

        }
    });