如何在SWT中的子类中创建控件。然后在那个父类中使用它

时间:2014-08-26 01:08:55

标签: java user-interface swt

我需要在其中创建包含错误视图和数据视图的属性选项卡(我应该将其称为视图吗?)。我想做这样的事情。我有两节课。第一:AbstractContentProvider:

 abstract public class AbstractContentProvider {
          Text errtext;
    public void createControls(Composite parent){
        super.createControls(Composite parent);
        StackLayout sl=new StackLayout();
        parent.setLayout(sl);
        Composite pane=new Composite(parent,SWT.NONE);
        //pane init code is ommitted
        errtext=new Text(pane,SWT.WRAP);
        sl.topControl=text;
    }
    public void setErrText(String text){
        errText=text;
    }
}

所以这是我的abstractClass代码,它生成一个小文本和StackLayout来改变视图。这是来自第二(子)类的createControls:

public class ContentProvider extends AbstractContentProvider{
    public void createControls(Composite parent){
        super.createControls(Composite parent);
        //this methods are omitted, but they just creating swt toolbar and table
        createToolBar(parent);
        createTable(parent);

        setErrText("ERROR");
    }
}

属性页面上可以有不同的内容,但是,应始终为每个选项卡创建相同的errText视图。如何从子类添加数据视图,然后通过调用父类的方法来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

我想我仍然没有明白你的问题: - $

所以也许你告诉我,我是否会朝着正确的方向前进^^

将您的共同部分保留为私有变量 - 然后您可以轻松访问父级...

private Object commonPart; //i don't know it's class
public class ContentProvider extends AbstractContentProvider{
    public void createControls(Composite parent, Object commonPart){
        super.createControls(Composite parent);
        this.commonPart= commonPart;
        //this methods are omitted, but they just creating swt toolbar and table
        createToolBar(parent);
        createTable(parent);

        setText("ERROR");      
        commonPart.doSomething(); //i don't know the common part      
    }
}