《Swing大刀》系列中提到的项目源码,如今终于整理完毕给大伙送上。其实中间很多代码都是在边看球边写的,有点心不在焉,不过仅供参考,献丑一下也无妨。
源码中的类不多,分为两个包:一个是free.*,一个是free.test.*。其中free.*这个包是整个小框架的核心代码和类,其image子目录是其中用到的各种资源图片。free.test.*则是对框架的使用示例,包括一些相关图片资源。也就是说,free.*可以认为是“产品级别”的,而free.test.*则是“项目级别”的,是框架使用的一个例子。整个框架的初衷和解释在以前博文中有所阐述,此处不再重复。
这些代码从公司的一个预研项目中抽出。根据中华人民共和国国务院2000年6月25日颁布的《鼓励软件产业和集成电路产业发展的若干政策》(18号文件)及2002年7月24日发布的《振兴软件产业行动纲要(2002年至2005年)》(47号文件)规定的由国家扶持的软件产业风险投资公司和投资基金(至今尚未组建)的精神,以及“共享、共有、共富、共赢”的四项基本原则、“软件还是开源好”的基本国策、“今天,你免费了没?”的行规,代码的package修改为了free.*;主要的类也一律Free***来命名,以此充分体现响应国家号召、遵守行业政策的精神。例如,FreeToolBar就是工具条,FreeProgressBar就是进度条,等等。大家可自行研究。
free包下的Shell.java是整个小框架的设计初衷:做一个现成的界面风格和布局,用XML来配置其内容(例如菜单、工具条、模块栏、功能列表等等,具体XML见free目录下的几个xml示例文件)。所以可以直接运行这个类(有main函数),可以得到《Swing第一刀》中的示例。此外,运行FreeLoginUI.java即可得到《Swing第三刀》中的登录界面,等等。
代码很简单,也很干净,由于从公司项目抽出,很多注释都被我去掉,以避免不必要的麻烦。相信以大家的聪明才智加上俺的规范命名,不会造成什么阅读困难。不过关于代码的使用还有以下注意事项,请大家注意:
1,代码仅供参考和相互学习。现在软件行业(甚至各行各业)抄袭成风、愈演愈烈,以至于某个公司每次说“我们的**数据库**操作系统是完全国产、完全自主创新、完全的自主知识产权”,我们程序员就都会心的笑了。但是我还是不建议把这套代码直接用在自己的项目上,尤其原封不动的照搬,总不是件好事。以后俺家的ERP和你家的ERP去同一个客户那去竞标,show出来一看:阿娇和阿萨,撞衫而死,岂不尴尬!非要用,怎么也得修改一下图片资源、简单的颜色、字体风格吧,相似度降低到大S和小S就行了,聪明人更会弄的不露痕迹,所谓“去其糟粕、取其精华”嘛。相信大家会处理好。
2,关于JGoodies和TWaver。代码中涉及到一些JGoodies和TWaver的使用和相关代码,以前解释过原因,这里再重申一下。JGoodies是一个免费的LnF,TWaver是一个商业的Swing组件库(试用版本是可以免费用的有个水印而已)。两个东东在这里都不是必须使用的。他们的存在仅仅是因为我们公司项目的具体需要,我也就没有花很多时间去除他们的使用代码。在《Swing第二小刀刀:星星之火可以燎原》一文里,xujunJ2EE同学已经成功的去除了这些第三方类库的相关代码并提供了源代码,相信对大家会有所帮助。还是那句话:哥散的不是代码,是思想;哥你看的也不是源码,是火花。哈!
3,代码的更新:这个框架会持续改进,代码也会持续更新。不过由于这是一个公司内部项目,所以本人不能保证以后还能持续更新、改进和发布这批代码;不过相关的技术思路都会在后续的文章中共享,相信大家也完全可以自己来实现代码的改进。
4,欢迎大家一起学习和讨论,共同进步,无论是玩Java Swing的,还是Web的,还是.NET的,还是Flex的。谩骂和攻击总不是让人很舒服的事,尤其在自己“未作恶”的情况下,就尤显得委屈。况且,谩骂绝不是战斗,反而有点懦弱和胆怯的表现,于我们的学习和进步毫无益处。本人尊重所有人、所有技术、所有流派、所有思想,并一向本着“不做作、不忽悠”的做人原则,也希望获得大家的支持鼓励和批评建议。
有人说你这代码散了岂不可惜?确实没什么可惜的。岂不说这里本就没什么高深的技术奥秘,就算有,如能让大家更多的了解Java和Swing以及一些UI设计和编程技巧,改变一点对Java和Swing的偏见和看法,或者能换回更多的共同进步之“满地芳华”,那岂不更是人生之更大乐事么?
哎哎,说你那,在那别罗利巴索唠唠叨叨半天了,散个代码,你哪那么多废话啊?!
欧克,欧克(注:火星语,OK之意)。代码在下方。goodies.jar和twaver.jar请在我博客的前面文章中下载,不再重复提供。有任何疑问请在论坛回复留言。