首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWT StyledText -监听SWT更改

SWT StyledText -监听SWT更改
EN

Stack Overflow用户
提问于 2013-11-04 00:02:33
回答 2查看 524关注 0票数 2

我有关于SWT StyledText滚动条的问题。我已经在我的样式文本的(水平和垂直)滚动条中添加了监听器:

代码语言:javascript
复制
styledText.getHorizontalBar().addListener (SWT.Selection, new Listener () {
    public void handleEvent (Event e) {
        //Some action
    }
});
styledText.getVerticalBar().addListener (SWT.Selection, new Listener () {
    public void handleEvent (Event e) {
        //Some action
    }
});

我的问题是,只有当用户使用鼠标移动滚动条时,我添加的侦听器才会做出反应。例如,如果只有一部分styledText是可见的,并且用户键入了一些文本,这会导致可见客户端区中的变化,则监听器不会被告知有变化。

我的问题是--有没有可能以某种方式监听样式文本的可见工作区的变化?

EN

回答 2

Stack Overflow用户

发布于 2013-11-04 00:35:11

JFace TextViewer (使用StyledText)支持IViewportListener,它可以执行您想要的操作。

如果您不想使用JFace,那么您可以复制TextViewer调用其侦听器的方式。它监听控件调整大小、释放按键、按下按键、鼠标释放和选择小部件。然后,它检查StyledText.getTopPixel()是否已更改。

票数 4
EN

Stack Overflow用户

发布于 2013-11-04 00:16:41

您专门为getHorizontalBar()返回的对象添加了侦听器,这就是用户输入文本时没有发生任何事情的原因。也可以尝试将侦听器添加到getContent()。大致是这样的:

代码语言:javascript
复制
styledText.getContent().addTextChangeListener (new TextChangeListener() {
            //events
        };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19754909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档