SWT的第一次小总结
SWT小总结下,做了个很简单的小玩意,总结一下,顺便把里面觉得比较有代表性的地方都记下来。
?
包结构设计和分层
这次几乎没有什么完整的分层,至于之前说到的Java swing的MVC,我还是用不上。如图。

?
首先引进的库有Java运行时库(JRE系统库)和SWT开发用库(在“引用的库”里边),如果是直接从外边拉进或者复制粘贴到project里面的,记得要把库路径加入project的classpath里面。
包的设计分部是:
1.??app:应用程序文件,里面只有一个文件,文件里面只有一个main方法,直接调用主程序窗口。其实可以直接在窗口类启动,但是那样不符合应用和界面分开的原则。
2.??com.swtdesigner:这次用了MyEclipse的SWTdesigner插件,但是几乎没有用到里面的自动生成,都是自己手打的代码,为什么不用,我后面会说。而这个包是自动生成的,我打开里面的Java文件,估计可能是SWTdesigner自定义的一些方法。不讨论。
3.??model:用来放置处理成模型的文件,这次主要包括一个用来存储数据表的JavaBean,即Table.java和处理输出的Dispose.java两个。
4.??shell:是窗口类,窗口都继承自UI包里改写统一的Shellmodel.java。其中运行逻辑也在窗口类中,没有分离开。
5.??UI:如上所说,是完全继承空间类的界面类,用于统一一些东西。
另外还有源文件夹resources。源文件夹和文件夹的区别就是,源文件夹是添加进classpath(类路径,启动或者运行的时候,从该文件里面找到对应的文件,在eclipse/MyEclipse中右击项目,属性/properties,构建路径/Java buildpath,可以对项目classpath进行编辑),而普通文件夹就是个文件夹,没有添加进classpath。resources是用来放一些图片或者声音的,图片和声音属于这项目的一部分,为了可移植性,应该把资源文件(图片和声音等)放在类路径里面,而不是用绝对路径(比如在桌面:C:\Users\Default\Desktop),除非你保证每一台运行的机器上面的绝对路径里都有你要的资源文件(不太现实吧…)。
?
UI包
UI包的作用是统一控件模型,比方说,你所有的窗口都有同样的图标,而且都要求是固定尺寸,没有最大化的功能,总在最上,模式窗口等等,这些你完全可以用一个UImodel文件来继承Shell,然后在构造方法里面设定。按照上面要求,UI类如下:
?
} else if (widget == cancelButton) {// 退出按钮 Shell shell = (Shell) cancelButton.getParent(); shell.close(); }?????? 得到父亲之后,强转为Shell类,然后调用close ();
?????? 还有很多细节,待以后研究到继续记录