【原创】符合当前主流审美的原创swing外观 -凯发k8网页登录

我的最新工程mobileimsdk:http://git.oschina.net/jackjiang/mobileimsdk
posts - 336, comments - 13, trackbacks - 0, articles - 0

  传统意义上讲,swing外观定制相当困难。java1.5里发布的synth技术在没有可视化工具的前提下,依然不实用。曾今听说sun将针对nimbus主题推出一款可视化设计工具,也没有了下文。

  一个稍复杂点的平面效果,受限于技术实现,swing里也只能像网页一样——切图拼合,但在swing里这么做代价较大:需要精确切图拼合、复杂的布局、未来定制很困难等等,显然不实用。

  直到接触android应用的ui改进,循着android与标准java的渊源,认为ninepatch技术移殖到swing中有很大的可能,顺利的话有可能完全兼容。最后,一切正如所料。

  接下来也就有了beautyeye l&f这个项目的想法。

 

  前几年,因对swing的外观定制有过几次深入实践,因而今年初有了利用ninepatch技术为swing彻底改头换面一次的想法。

  起先没想完全开发一套lnf,因为明知工作量很大(包括编码,更为困难的是美感与视觉效果的确定),原本只想在windows lnf的基础上深入改进,以便站在前人的肩膀上快速收工。因熟门熟路,定制起来非常顺手,随着改造的深入,完全定制一套lnf的条件自然成形。

  经众多基础ui素材的积累和借鉴,以及效果精细调整,各组件外观逐渐达到预想的效果,也就萌发了要将此项目分享于互联上,供需要的人使用。

  过程中也难免存在些遗憾——有些更好的想法没有付诸实施,原因在于lnf代码的结构很多时候并不像swing本身一样优秀(更多时候是lnf创造者们有所保留,因为lnf代码难保一劳永逸),且存在不少未公开api的调用,基于兼容性和未来维护难度的考虑,采取了中庸之道。

  如有喜欢者将甚感欣慰,不喜者也权当技术交流,千万勿喷。你可将其无偿用于测试、学习、甚至商业用途。但禁止在未经授权的情况下用于商业用途等,还请尊重知识产权。

  有兴趣者可加【qq群:259448663(已满)、2群:217134536 】方便交流。

 

  地址: ,内有详尽开发指南及演示程序截图等。

 

      part 1/2

        part 2/2
 

  在该项目的目录组织结构上,不同组件都单独开列,目的是设想未来可针对各组件逐一编写教学文章,但可以预见工作量也是不小,必竟个人业余时间有限,而且也不知道是否真有人需要,所以此事暂且放一边,也希望有兴趣者协同开发,从而为swing lnf定制分享更多的经验,惠及后来者。

       



作者: (点击作者姓名进入github)
出处:
交流:欢迎加入即时通讯开发交流群
讨论:
jack jiang同时是和的作者,可前往下载交流。
本博文 欢迎转载,转载请注明出处(也可前往 找到我)。

feedback

# re: 【原创】符合当前主流审美的原创swing外观 - beautyeye l&f 正式发布  回复     

2012-09-17 16:29 by
这个图形界面牛逼啊~!

支持!

# re: 【原创】符合当前主流审美的原创swing外观 - beautyeye l&f 正式发布  回复     

2012-09-18 06:57 by
版主不簡單阿,這界面了不得

# re: 【原创】符合当前主流审美的原创swing外观 - beautyeye l&f 正式发布  回复     

2012-09-20 16:50 by
这套外观 在windows系统中最大化的时候,会遮住 屏幕底部的taskbar,windowsxp 和 windows7 都是这样,而且 frame的右下角不能拖拉放大,我的系统是 windows7 64位,也许是我自己系统的环境问题?.我之前改过一个lookandfeel(简单的,个人能力有限) 类似这种 去掉taskbar的高度:
graphicsconfiguration gc = frame.getgraphicsconfiguration();
insets screeninsets = toolkit.getdefaulttoolkit().getscreeninsets(gc);
rectangle screenbounds = gc.getbounds();
int x = math.max(0, screeninsets.left);
int y = math.max(0, screeninsets.top);
int w = screenbounds.width - (screeninsets.left screeninsets.right);
int h = screenbounds.height - (screeninsets.top screeninsets.bottom);
// keep taskbar visible
frame.setmaximizedbounds(new rectangle(x, y, w, h));
个人猜测:
可以在 自己的写的titlepane 里面处理window 事件时,做修改,非专业开发,仅是个人猜测...

# re: 【原创】符合当前主流审美的原创swing外观 - beautyeye l&f 正式发布[未登录]  回复     

2012-09-20 17:48 by
@亦非鱼

此问题是java保留了n年也没有fix的bug,我已纳入优化记录,非常感谢。

# re: 【原创】符合当前主流审美的原创swing外观 - beautyeye l&f 正式发布  回复     

2012-09-21 16:42 by sun_java_studio@yahoo.com.cn(电玩)
佩服,我也曾经是swing的狂热者

# re: 【原创】符合当前主流审美的原创swing外观 - beautyeye l&f 正式发布  回复     

2012-09-26 01:54 by
算了,做桌面应用开发的话还是用c 甚至vb等工具吧,毕竟java的强项不在这里。

# re: 【原创】符合当前主流审美的原创swing外观 - beautyeye l&f 正式发布  回复     

2013-02-20 15:48 by
今天早上还在想,为什么swing就不能做的像android的那么华丽丽效果,下午没想到就搜索到了,学习了,很漂亮。

# re: 【原创】符合当前主流审美的原创swing外观 - beautyeye l&f 正式发布  回复     

2014-12-10 17:27 by
下不了。呜呜~~~~~

只有注册用户后才能发表评论。


网站导航:
              
 
jack jiang的 mail: jb2011@163.com, 联系qq: 413980957, 微信: hellojackjiang
网站地图