2011-06-12 48 views
2

如何让SWT StyledText小部件始终保持滚动到最后?即使新文本行被附加到SWT StyledText小部件上?获取SWT StyledText小部件始终滚动到其结尾

我试图寻找一些功能,可以让我设置滚动位置,但我找不到任何。没有一个属性可以让我做到这一点。

回答

9

只需添加这一行,您添加文本后:

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

如果你改变你的StyledText对多个地方的内容,使用监听器Modify,以not repeat yourself

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

太感谢你了! :) – Carven 2011-06-13 14:06:31

3

另一个变化:

styledText.addModifyListener(new ModifyListener() { 

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

     } 
    }); 
+0

我更喜欢这个解决方案,但我更喜欢投e.widget – VeikkoW 2014-08-28 12:11:39