前言:
************************************************************************************* 【相关文章:为SharePoint Portal S】
这个系列的文章又停了两周,因为最近玩心甚重,双休去北京周边去玩,花去不少时间。昨日msn上有朋友说:“他们的系统用swing来开发太丑了,决定改用swt来做,可是这方面的资料还是太少了。”于是我再次提笔续写下去。eclipse不仅仅是象jbuilder一样的开发工具,它本身也是一个非常不错的java application开发平台,现在所流行构件式开发的概念在eclipse得到了最好的体现。当你深入到eclipse插件的开发中你也会更深入的体会到什么叫做面向对象。在这里感谢大家对这一系列文章的支持,希望尽量转帖,以传播eclipse插件的开发方式,但请转帖时,保持文章的完整性及作者声明,尊重作者的劳动。 【扩展阅读:也谈谈动态绑定dropdownlist(】
作者:陈刚,桂林人,97年毕业于广西师范大学数学系,专注于java平台。现(2004.2-?)暂在ibm中国研究中心进行eclipse插件的开发。 【扩展信息:Avalon介绍】 email: glchengang@163.com blog: glchengang.yeah.net *************************************************************************************在前面几节我们介绍了rowlayout、filllayout、gridlayout、stacklayout,这些管理器足够我们用的了。这是布局管理器的最后最一节,我们来做一个复杂一点的界面,这个界面取自我正在开发中的一个项目---ppp的报表模块的主界面。在这一节将展示如何利用swt designer插件软件(此插件第前面几章有过使用介绍)来进行界面编程,希望对大家有所帮助。
报表模块的主界面如下图:
1、初步构架。做复杂界面,首先要将界面进行板块的分割,要“分而治之”,不要把所有控件全放在一个面板中,这样会很混乱,今后维护会非常困难。在这里我们将此界面划分成如下图的红色框的四个大块。
这四个板块由三个group与一个compsite组成,我们先写出大的构架出来,效果如下图:
其代码如下:
/* * 陈刚 ,创建日期 2004-6-21 * * email: glchengang@yeah.net * blog : glchengang.yeah.net */ package net.yeah.glchengang.layout; import org.eclipse.swt.swt; import org.eclipse.swt.layout.filllayout; import org.eclipse.swt.layout.griddata; import org.eclipse.swt.layout.gridlayout; import org.eclipse.swt.widgets.button; import org.eclipse.swt.widgets.composite; import org.eclipse.swt.widgets.display; import org.eclipse.swt.widgets.group; import org.eclipse.swt.widgets.shell; public class lastapp { public static void main(string[] args) { lastapp window = new lastapp(); window.open(); } public void open() { final display display = new display(); final shell shell = new shell(); shell.setlayout(new filllayout()); shell.settext("swt application"); { final composite composite = new composite(shell, swt.none); final gridlayout gridlayout = new gridlayout(); gridlayout.numcolumns = 2; composite.setlayout(gridlayout); { final group group = new group(composite, swt.none); group.settext("aaa"); group.setlayoutdata(new griddata(griddata.horizontal_align_fill)); group.setlayout(new gridlayout()); } { final group group = new group(composite, swt.none); group.settext("bbb"); group.setlayoutdata(new griddata(griddata.fill_horizontal)); group.setlayout(new gridlayout()); } ... 下一页