`

eclipse表单

 
阅读更多

 

     eclispe表单,它的作用就是使swt/jface的各种控件呈现出类似于网页中的效果,使界面看起来更加精致。它应用于视图、编辑器、向导、对话框等控件中。

 

     FormToolkit,表单工具对象非常重要,它是创建各种表单控件的中介。各种控件都是通过它包装一下,然后渲染出新的样式。使用完该表单工具时,要记得释放,因为它携带了系统资源,比如字体,颜色等。

 

通过表单工具,创建可滚动的表单对象

ScrolledForm form=toolkit.createScrolledForm(shell);

 

获得表单工具的2种方法:

 

1.通过display获取:

toolkit=new FormToolkit(arg0.getDisplay());

 

2.通过多页编辑器中的IManagedForm对象获取

toolkit=managedForm.getToolkit();

 

 

可滚动的表单对象ScrolledForm,是表单容器,在其中可以放置其他表单控件,获取该表单容器的方法有:

 

1.如果在多页编辑器中,可以这样获取:

ScrolledForm form = managedForm.getForm();

 

2.在其他地方:

ScrolledForm form=toolkit.createScrolledForm(shell)

 

form.setText()//设置表单的标题

form.setBackgroudImage()//设置表单容器的背景

 

在表单容器中添加控件之前,要首先设置布局管理器,方法如下:

form.getBody().setLayout(new TableWrapLayout());

 

TableWrapLayout是表格布局管理器,根网格布局管理器使用方法类似,只不过它支持自动换行。

 

可折叠面板的使用例子:

 

               toolkit=new FormToolkit(arg0.getDisplay());

form=toolkit.createScrolledForm(arg0);

form.setText("Hello cxm");

                //如果使用其它布局管理器,内容多了不会自动换行

form.getBody().setLayout(new TableWrapLayout());

                //还有其它样式ExpandableComposite.TWISIE

ExpandableComposite ec=toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE);

                //设置折叠面板的标题

ec.setText("折叠");

String txt="看到了";

Label l=toolkit.createLabel(ec, txt,SWT.WRAP);

                //设置折叠面板显示的控件

ec.setClient(l);

ec.addExpansionListener(new ExpansionAdapter(){

public void expansionStateChanged(ExpansionEvent e){

                                //根据部件的新尺寸重新定位和更新滚动条

form.reflow(true);

}

});

 

 

 

内容区Section,是可折叠面板的子类

 

                toolkit=new FormToolkit(arg0.getDisplay());

form=toolkit.createScrolledForm(arg0);

form.setText("Hello cxm");

form.getBody().setLayout(new TableWrapLayout());

Section s=toolkit.createSection(form.getBody(), Section.TWISTIE);

String txt="看到了";

Label l=toolkit.createLabel(s, txt,SWT.WRAP);

Label l2=toolkit.createLabel(s, "sdfsdf", SWT.WRAP);

s.setClient(l);

s.setText("这是个内容区");

       //设置内容区的工具栏

s.setTextClient(l2);

s.addExpansionListener(new ExpansionAdapter(){

public void expansionStateChanged(ExpansionEvent e){

form.reflow(true);

}

});

 

 

 

 

超链接是一种带下划线的标签,与普通网页中显示的超链接效果非常类似

toolkit=new FormToolkit(arg0.getDisplay());

form=toolkit.createScrolledForm(arg0);

form.setText("Hello cxm");

form.getBody().setLayout(new TableWrapLayout());

Hyperlink hl=toolkit.createHyperlink(form.getBody(), "链接", SWT.WRAP);

hl.addHyperlinkListener(new IHyperlinkListener() {

@Override

public void linkExited(HyperlinkEvent arg0) {

}

 

表单文本,它支持无格式文本的自动换行,将http开头的文本自动转换为超链接

                toolkit=new FormToolkit(arg0.getDisplay());

form=toolkit.createScrolledForm(arg0);

form.setText("Hello cxm");

form.getBody().setLayout(new TableWrapLayout());

FormText ft=toolkit.createFormText(form.getBody(), false);

                //第2个表示是否把xml格式的标记转化为表单格式,

                //第3个表示是否把http开头的转化为超链接

ft.setText("百度 http://www.baidu.com", false, false);

@Override

public void linkEntered(HyperlinkEvent arg0) {

}

@Override

public void linkActivated(HyperlinkEvent arg0) {

}

});

//除了可以设置文本,还可以设置图片

ImageHyperlink ihl=toolkit.createImageHyperlink(form.getBody(),SWT.WRAP);

ihl.setText("图片");

ihl.setImage(null);

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics