首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持Java StyledText控件

支持Java StyledText控件
EN

Stack Overflow用户
提问于 2015-11-30 12:08:42
回答 2查看 371关注 0票数 1

我的目的是编写一个NASTRAN文本编辑器(纯文本编辑器,eclipse纯E4 RCP应用程序)。NASTRAN是一种工程结构分析应用。简化后,NASTRAN使用8个字符的文本卡-每个字段的宽度和每张卡最多10个字段(行)。见图中迄今所做的工作

此编辑器的主要功能是显示带有彩色列背景的纯文本(固定间距字体),因此可以很容易地区分每一行中的不同字段。

我使用了一个StyledText控件,它提供了更改背景的方法:

代码语言:javascript
复制
styledText.setBackgroundImage(backgroundImage);

我如何使用IDocument接口与StyledText,以便它可以提供我的支持:文字操作,位置,分区,线信息等。

其他文本控件(TextViewer,SourceViewer)提供setDocument(IDocument)方法来加载和操作文本数据。

代码语言:javascript
复制
--org.eclipse.jface.text.TextViewer

  |
--org.eclipse.jface.text.source.SourceViewer

但是StyledText扩展了SWT画布,没有提供方法来设置输入文档。

代码语言:javascript
复制
   --org.eclipse.swt.custom.StyledText

另一种方法可能是如何在SourceViewer控件中更改背景,以便有不同颜色的列。

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-03 16:47:02

谢谢格雷格-449的回答,问题解决了。我对包装另一个类的类的概念没有一个明确的理解。因此,我首先尝试创建一个StyledText对象。现在很清楚了

我已经在下面附加了我的处理方式:创建一个SourceViewer控件,然后获得包装的StyledText。这样我就可以为控件设置背景图像。

代码语言:javascript
复制
public class NastranEditor {
    public StyledText st = null;
    public SourceViewer sv = null;
    private Image backgroundImage;//The image to appear at the backgroud
    //....
    @PostConstruct
    public void postConstruct(Composite parent){
        IVerticalRuler  ruler = new VerticalRuler(20);
        sv = new SourceViewer(parent, ruler, SWT.MULTI | SWT.V_SCROLL);
        st = sv.getTextWidget();
        st.setBackgroundImage(backgroundImage);
        //....
    }
    //....
}
票数 0
EN

Stack Overflow用户

发布于 2015-11-30 13:29:06

TextViewer和SourceViewer是StyledText的包装器,提供了处理IDocument接口的代码,因此您应该使用其中之一。

您可以调用查看器的getTextWidget()方法来访问他们正在使用的StyledText控件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33998347

复制
相关文章

相似问题

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