2010年的某一天,平静的
Swing江湖突然杀出一把刀,一把锋利的刀,此后,一个个不甘寂寞的杀手便陆续浮出水面,平静再一次被打破。那个时候,老三正在修炼,虽然没有闭关,但是所炼之物老三自认为绝非一般,所以没有及时出来给大家捧场,请多多见谅。
说起刀,老三更喜欢剑。冷兵器时代,刀属于攻击型兵器,而剑则是装饰型的。既然是装饰型,那它的
主人必定有过人之处,否则应使刀为上。纵观几千年的武林史,大多正派武林高手多使剑,比如金老笔下的杨过、包黑
手下的展猫,传说中项羽也有一把天子雷霆剑。哈哈,老三在这里绝没有自夸之意,因为老三无剑,所以也无法使剑。之所以喜欢,就在于它的装饰型,通俗点说,就是老三觉得剑比刀漂亮,个人喜好而已,不代表大众意见。
说到了剑,老三觉得Swing就是其中一把,但是,是把木剑。木剑,其本身的攻击性已经被缩小到
极致,所以它的真实威力如何,全在使此剑之人。武功高强者,身边的任何物种都可能是一件利器,再强者则可以达到无剑胜有剑;泛泛之辈呢,即使使用再强的兵器,其
战斗力也只能是泛泛。
武林之事随便聊聊,过后如风,不必计较得失。今天,不甘寂寞的老三要发布一款或许可以让大家眼前一亮的Swing之作——三号管家。提到管家,不得不先说一下SwingC。SwingC是什么玩意,老三可以很负
责任的说,在今天之前,这个东东只有我知道,今天之后,老三就说不清楚了。简单的说,SwingC就是一个完全用Swing写的UI库,按照
QQ2010的风格重画了Swing中几乎全部常用组件,屏蔽了Swing组件本身的动态改变风格的功能,当然里面还有一些其他东东,但这不是重点,今天可以不提。老三花了四个月的业余时间,将这个东东制造出来,自认为很有成就感,大家的看法呢,老三就不知道了,也没必要知道。为什么会用这么长时间呢,因为老三上班很忙,根据XX守恒定律,业余时间就很少,明白乎?
SwingC造出来之后,毕竟只是个包,要体现其精华与存在的必要性,必须得再造一个用它的东东,于是三号管家的主意便浮出水面。别看名字有点大气,其实就是一管账的,家庭账本。本身没有什么技术含量,前面说了,它诞生的原因就是为了展现SwingC。聊就聊到这里,有兴趣的朋友可以去下载来试试,三号管家完全开源,SwingC暂时不开。下面老三再申明几个问题:
1、SwingC完全用Swing实现,手
写代码,JDK/JRE必须是1.6u10及以上;
2、三号管家除数据库用到SmallSQL和Hibernate之外,其它完全由老三亲自实现,UI基于SwingC,JDK/JRE必须是1.6u10及以上;
3、SwingC中组件的风格与QQ2010类似,柱形图和饼图是参照
TWaver中的效果,但是实现完全原创,100%Swing,手写代码;
4、由于动画效果是SwingC开发到一半的时候才想起的,后来
发现要在中途实现则改动比较大,所以就直接忽略了,其实现实起来很容易,如果在一开始就想到这个功能,那将是个不错的主意;
5、因为三号管家仅仅是为了体现SwingC的效果而存在,所以其功能不会再改变,目前发的是1.0.3,以后若有新版发出,只是修改了已经发现的bug;
6、三号管家完全开源,SwingC由于是老三的心血,暂时不开,喜欢反编译的朋友可以试着去反编看看;
7、关于SwingC的名称,前有SwingX,故老三也想以类似的方法来命名,选C,是因为老三的英文名以C开头,另外3也是老三喜欢的数字,C正好也是字母表中第三个,SwingC便由此而来。
以下是115网盘的共享地址:
NO.3 Keeper V1.0.3.rar 三号管家(有JRE,不知道JRE是什么的朋友请下载这个)http://u.115.com/file/f6e17071fc#
NO.3 Keeper V1.0.3_NO JRE.rar 三号管家(没有JRE)http://u.115.com/file/f6b274aaaa#
NO.3_Keeper_V1.0.8_SRC.rar 三号管家源码http://u.115.com/file/dnhbpgrs#
以上地址均为初始版本V1.0.3(源码除外),下载后请在更新记录中下载最新的补丁包解压后覆盖同名文件或目录!
MD5:
C03F8E8A91226DB9B9DD8D68BBD94D68 NO.3 Keeper V1.0.3.rar
29076EFBEBBEB934349FEE4436029EEE NO.3 Keeper V1.0.3_NO JRE.rar
92FBC80DF2EBA9BCDDC9B931ACF78532 NO.3_Keeper_V1.0.8_SRC.rar
更新记录(下载补丁包解压后替换同名目录或同名文件即可):
2010-12-30
V1.0.3:初始版本
2011-01-07
V1.0.4:优化菜单字体显示
2011-01-25
V1.0.5:修正重新排序后修改数据无法立即刷新的问题
2011-05-03:
V1.0.6:修改皮肤切换逻辑,在不支持透明的操作系统中可正常运行
2011-05-30:
V1.0.7:1、修正在某些系统中最大化异常的问题
2、修正在某些系统中启动时控制台打印异常信息的问题
3、修正在某些系统中新增皮肤时崩溃的问题
4、修正在某些系统中导出CSV时崩溃的问题
5、修正CSV导出结果数据凌乱的问题
2011-07-31:
V1.0.8:修正在JRE7中菜单出现阴影的问题
补丁包地址:http://u.115.com/file/e6k47nuq# MD5:E69C100954E21B0925BFC7635C821143 lib_V1.0.8.rar
看见论坛里面有人问的几个问题,个人感觉有点价值,帖上来吧
有个问题:
1 按照QQ2010的风格重画了Swing中几乎全部常用组件 和 按照QQ2010的风格写“look & Feel”工作量有什么区别?
2 SwingC是你的玩具 , 你在show,想找玩伴么? 找到玩伴了么? 不给玩
山寨之你反对么?(了解需求 , 明确
接口,编写一坨一坨代码实现功能,不过gui复杂,就是说你的思想有价值。。。)
3 以前以为desktop开发就是堆控件,开发被需求整得死去活来。原因是gui不够炫(应该上flash的),或者api不够熟悉什么的 从头开始看 字体 尺寸 刷颜色 画曲线 什么的 到底如何学习?
哈哈,第一个问题问的好,这也是我在介绍中遗漏了的,现在补上
SwingC重画了组件,其实就是给每个组件重新写了一个UI,这个跟“look & Feel”的实现基本一样。但是老三为什么不单独写一套“look & Feel”出来呢,原因是SwingC中每个组件只是默认外观类似QQ2010的风格,其实留了很多可配置接口的,只要在应用程序初始化之前重新设一下相应的资源,有必要的情况下可以在初始化组件时改改某些参数,然后,呵呵,另一种风格的组件就出来了,这也是与“look & Feel”最大的区别。因为有了这个区别,所以组件本身得添加一些参数,有些方法还需要重写,这样,我认为最好的办法就是继承原来的组件重新写一个,虽然使用setUI()单独依靠对应的UI类也可以实现这些功能,但是个人觉得那样不太合理,比如要调整新增加的参数,必须得取到UI,然后强制类型转换后才可以调整。基于以上这些,SwingC中的每个组件直接屏蔽了“look & Feel”功能,有兴趣的朋友可以试试,只要全部使用SwingC中的组件做的UI,不管你怎么setLookAndFeel,其视觉效果是不会有变化的。
第二个问题,其实也就是我制造SwingC出来的目的,主要还是为了玩,因为它不仅仅局限于QQ的风格,所以能用到的地方还是挺多的。至于玩伴么,你不说,我还没往这方面想呢。至于山寨,只要不直接拿我的代码去说是自己写的,其他的不反对。
第三个问题,我觉得字体、尺寸、颜色这些不是做UI的需要关心的东西,应该留给美工(要不人家失业了得找你麻烦),所以写代码的最主要的还是把你看到的用代码堆出来放到软件中去,至于怎么堆,每个人都有自己的方法,刚开始从山寨做起也是个好主意,至于资料嘛,我觉得JDK本身就够了,它的demo、它的源码,研究透了,其实也就那么回事,都是人写的。