首页 > 开发 > 综合 > 正文

Eclipse Form程序设计指南之入门

2024-07-21 02:15:16
字体:
来源:转载
供稿:网友
  1、介绍

  ·eclipse form是eclipse 3.0的新特性

  ·eclipse form是一组定制小部件和支持类组成的插件,以前由pde和update组件内部使用,在eclipse 3.0中已经成为公用api

  ·eclipse form提供:

  * 适合包含到内容区域(编辑器或视图)中的“form”概念

  * 用来管理颜色、超链接组和其它象swt控件一样的form外观的工具包

  * 象html表格一样布局的新布局管理器

  * 为form设计的定制控件(超链接、图像链接、可滚动的composite等)

  * 每页是一个form的多页编辑器(就象pde)

  2、快速入门

  (1)helloworld例子

  ·下面的例子在视图中创建一个空的form

public class formview extends viewpart {

 private formtoolkit toolkit;
 private scrolledform form;

 public void createpartcontrol(composite parent) {
  toolkit = new formtoolkit(parent.getdisplay());
  form = toolkit.createscrolledform(parent);
  form.settext("hello, eclipse forms");
 }

 public void setfocus() {
  form.setfocus();
 }

 public void dispose() {
  toolkit.dispose();
  super.dispose();
 }
}


  ·首先要创建formtoolkit对象实例

  ·由formtoolkit创建form对象(这里是scrolledform)

  ·调用scrolledform的settext()方法,在form的顶部设置标题内容

  ·注意:最后要dispose管理资源的formtoolkit对象

  ·要在workbench中运行,需要plugin.xml中,将org.eclipse.ui.forms添加到必需插件列表,并注册视图

<?xml version="1.0" encoding="utf-8"?>
<?eclipse version="3.0"?>
<plugin
id="formsamples"
name="formsamples plug-in"
version="1.0.0"
provider-name="nelson_tu"
class="org.xqtu.samples.formsamplesplugin">

<runtime>
<library name="formsamples.jar">
<export name="*"/>
</library>
</runtime>

<requires>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="org.eclipse.ui.forms"/>
</requires>

<extension
point="org.eclipse.ui.views">
<view
class="org.xqtu.samples.views.formview"
name="form sample"
id="formview"/>
</extension>
</plugin>


  (2)添加内容

public void createpartcontrol(composite parent) {
 toolkit = new formtoolkit(parent.getdisplay());
 form = toolkit.createscrolledform(parent);
 form.settext("hello, eclipse forms");

 composite body = form.getbody();
 gridlayout layout = new gridlayout();
 body.setlayout(layout);
 hyperlink link = toolkit.createhyperlink(body, "click here.",swt.wrap);
 link.addhyperlinklistener(new hyperlinkadapter() {
  public void linkactivated(hyperlinkevent e) {
   system.out.println("link activated!");
  }
 });
}


  ·首先获得form的体内容,它是一个composite对象

  ·设置其布局为gridlayout

  ·通过formtoolkit创建一个超链接(hyperlink)控件

  ·添加超链接事件侦听器,响应超链接的点击

  (3)添加通用控件

  ·由于form的体内容是一个composite对象,所以允许在其中创建swt控件

  ·但是swt控件是被设计为适合窗口、对话框的,所以在form中使用是有问题的

  ·在form中,使用formtoolkit创建对应的通用控件

public void createpartcontrol(composite parent) {
 toolkit = new formtoolkit(parent.getdisplay());
 form = toolkit.createscrolledform(parent);
 form.settext("hello, eclipse forms");

 composite body = form.getbody();
 gridlayout layout = new gridlayout();
 body.setlayout(layout);
 hyperlink link = toolkit.createhyperlink(body, "click here.",swt.wrap);
 link.addhyperlinklistener(new hyperlinkadapter() {
  public void linkactivated(hyperlinkevent e) {
   system.out.println("link activated!");
  }
 });

 layout.numcolumns = 2;
 griddata gd = new griddata();
 gd.horizontalspan = 2;
 link.setlayoutdata(gd);
 label label = toolkit.createlabel(body, "text field label:");
 text text = toolkit.createtext(body, "");
 text.setlayoutdata(new griddata(griddata.fill_horizontal));
 text.setdata(formtoolkit.key_draw_border, formtoolkit.text_border);
 button button = toolkit.createbutton(body,"an example of a checkbox in a form", swt.check);
 gd = new griddata();
 gd.horizontalspan = 2;
 button.setlayoutdata(gd);
 toolkit.paintbordersfor(body);
}


  ·上面的例子添加了三个通用控件:label、text和checkbox

  ·由于缺省创建的text控件的外观是3d的,而要达到象pde一样的flat外观,需要做些额外工作:

  1) 调用setdata()方法,添加重画边框的附加信息

  2) 调用formtoolkit的paintbordersfor()方法重画flat外观的边框

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表