对于RCP文本编辑器,使用Styledtext。
StyledText背景图像和文本需要一次滚动。
如何检测自动滚动事件?如果存在。
例如:如果用户按下END_KEY并且插入符所在的行长于StyledText控件区域的大小,则控件将自动滚动以显示插入符号位置。 如果用户按下LEF_ARROW并且光标位于行的前缀并且前一行的长度大于控件大小,则相同的发生。
因此,当检测到自动滚动时,侦听器可以相应地重新绘制背景。
最新的解决方案是为每个产生自动滚动的事件编写监听器。 即为以下内容编写事件:
st.addCaretListener(new CaretListener(){...}; st.addListener(SWT.Modify,new Listener(){...}; ... st.addKeyListener(){...}; st.addMouseListener(){...};
因此在每个事件内部编写代码来绘制背景图像。 当控件滚动时,听众会收到通知,代码应该更有效。
提前致谢