SWT 是IBM 搞的一个东东,他的全称是 Standard Widget Toolkit ,相对于 awt ,他拥有更好看的外表;相对于swing ,他拥有更小的内存占用,以及更少的bug 。 目前想用swt开发一个游戏中的任务编辑器 ,同时能够做成Eclipse插件的形式。 这两样一个也没接触过,那就从头开始吧!
首先下载swt designer ,很好的swt开发工具 ,开发界面相当于vb 了,很人性化。
下载地址是:http://www.instantiations.com/windowbuilder/swtdesigner/
建议下载6.8稳定版,配合Eclipse3.4 ,完美组合。。。 之前用Eclipse3.5 + SWT designer 7.2 ,结果老是安装不成功,看来最新的未必是最好的,稳定才是王道!
完了之后下载一个swt designer 的注册机,生成注册码后,
在Eclipse--preferences-- Designer 中添加注册完成
至此,安装和注册部分结束。
之后是简单demo的实现 。和ActionScript 类似,swt也有容器以及显示控件的概念。swt 程序中,只能有一个Display 类,这个类是个单例模式的类,负责分发处理各个事件,Shell类是一个外壳类,也就是相当于一个window,在shell中放置各种组件。
同时,还有composite组件,相当于是flash众的panel ,用来放置各个显示对象(组件)。再放置button,或者label 之前,必须要先添加一个composite ,这样布局才比较容易。 否则,会出现有一个屏幕大小的button。。。。。。
说到布局,swt也有好多种layout ,基本相当于awt的layout ,反正都不喜欢用,还是用自己定坐标来布局——使用swt Designer的好处,就是可以拖拽 。
然后就是熟悉各种组件了,比如tree ,button ,label ,table ,menu,combo 等等,某些组件下还有子类,比如treeitem ,menuitem,等等。。。。。。基本类似于vb ,还是比较好搞的
组件需要被添加到一个容器里面,如下面这个MessageBox 被添加到了shell窗口中,调用open方法,才能显示出来
MessageBox msg=new MessageBox(shell,SWT.OK);
msg.setMessage("您选择了:"+combo_1.getText());
msg.open();
接下去就是写事件,例如给一个combo加事件:
combo.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
Integer num=((((Combo)e.widget).getSelectionIndex()));//得到编号 e.widget 相当于得到当前对象,和as中的e.target类似
String str=combo.getItem(num);//通过编号得到内容
label.setText(str);
}
});
这个事件和awt也很相似,基本一样吧。。。。。。
能添加组件,能写事件,差不多就能满足所需要的功能了,开发起来还是很快捷的,swt Designer 真是java中的vb 啊!~
至此,第一阶段的试水结束。
下一个目标是写个 Eclipse 插件 (据说初入IBM的人都被要求写这个插件,看看能力。。。。。。不知真否?)
下面提供swt的学习视频,在线看的,适合入门 :
http://school.itzcn.com/video-vid-497-spid-17.html
IBM 网站上的swt全接触
http://www.ibm.com/developerworks/cn/opensource/os-swt/
还有swt的注册机,以及api,不知道从哪里传附件~~~有需要的人给我留言吧。。。。。。
期待下一篇啦~~