Swing第四刀:代码尽散换芳华

本文回顾了世界杯期间在繁忙工作之余开发的一款Swing框架的心得体会,分享了该框架的设计理念、核心代码和使用示例。作者强调了代码共享的重要性,并提供了详细的框架介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吵吵闹闹的世界杯结束了,西班牙人终于如愿以偿。回顾整个杯赛,花里胡哨的队伍都未能走到最后,反而强调整体性和纪律性的队伍占据了四强。足球是11个人的运动,这一简单的足球运动真理看来还没有被所有人深刻的认识到。

 

为什么西班牙能夺冠?“我们很淡定,敌人比我们还淡定;我们淡定是因为我们不怕死,敌人淡定是因为他们不怕我们死”。赛后荷兰主帅这样解释失败原因。不过罗本两次单刀两次裸奔,又能怨谁呢?

 

由于项目繁忙又加上世界杯看球,《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请在我博客的前面文章中下载,不再重复提供。有任何疑问请在论坛回复留言。

祝大伙编程愉快!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值