【前言】

本文将展示的是一款J2SE平台Swing外观(Look and Feel)实现,目前给出的演示jar包仅供测试之用,主体工作已经完成,余下是兼容性测试和调整,附件中的演示jar包推荐运行于java_1.6_u18版本之上(其它版本尚未测试)。可以肯定的是,它至少应该运行于java_1.6_u10及以上版本(因为它用到了u10里的窗口透明特性),后绪正式版本作兼容性修改后计划可运行于Java 1.5、1.6、1.7。

稍后将放出正式包供测试、学习、甚至商业用途。有兴趣者可加【QQ群:259448663】方便交流。

【关于Swing外观】

一直以来,Java GUI的外观很难达到主流审美标准,在java1.6把开源外观Nimbus纳入java体系之前,开发人员只能在几款相当过时的方案中选择,或自行寻找第3方实现。当前的Nimbus外观虽然还算得上漂亮,但跟市面上的其它外观一样,口味还是有点重。

因项目需要,几年前先后实现过2款深度LNF定制项目,但出于技术限制,Swing的外观从美观程度上讲很难获得突破。实现方式上讲,一个效果的实现有2种选择:要么自行Graphics.draw(..)、要么使用图片来填充,毫无疑问使用图片填充才是王道,但问题在于Swing本身没法实现矢量填充(试想,用图片来实现按钮,根据按钮的大小不同,你得准备多少张合适尺寸的图片?)。

直至11年8月,项目需要而接触到Android开发,项目组开发完成beta版后,因界面太粗陋,一时没有合适的美工帮的上忙,只能亲自动手先折腾折腾,感叹于Android程序外观定制的方便性以及NinePatch技术的简单实用,鉴于android平台与标准java平台的渊源,遂有了NinePatch技术引入到Swing中的想法,经实验证实完全可行。于是也就有了这第3次深度开发一款Swing外观的灵感和动力,也希望对需要的人有所帮助。

关于Swing中如何引入NinePatch技术请见我的另一篇文章:http://www.cnblogs.com/jb2011/archive/2012/05/02/2479002.html

【附件下载】

1)BeautyEye外观 (beta版)完整演示程序(含运行截图)下载:

http://files.cnblogs.com/jb2011/SwingSets2_BeautyEyeLNF(jar%E5%92%8C%E6%88%AA%E5%9B%BE).rar

 2)jre_1.6_u18运行环境下载(需不需要下载自行选择哦):

part1:http://files.cnblogs.com/jb2011/jre-6u18-windows-i586.part1.rar

part2:http://files.cnblogs.com/jb2011/jre-6u18-windows-i586.part2.rar

3)Sun官方Swing组件演示程序SwingSets2下载(以此为镜,方能看的见进步哦):

http://files.cnblogs.com/jb2011/SwingSet2.rar

【部分截图展示】

一款符合当前主流审美的Swing外观(Look and Feel)_测试版发布的更多相关文章

  1. 手写一款符合Promise/A+规范的Promise

    手写一款符合Promise/A+规范的Promise 长篇预警!有点长,可以选择性观看.如果对Promise源码不是很清楚,还是推荐从头看,相信你认真从头看到尾,并且去实际操作了,肯定会有收获的.主要 ...

  2. 【GUI】一、Swing外观框架BeautyEye使用

    一.Swing外观框架BeautyEye使用 1.1 导包 BeautyEye.jar 1.2 使用BeautyEye L&F public static void main(String[] ...

  3. 首款符合PICO-ITX规格的A20开源硬件开发平台

    http://mp.weixin.qq.com/mp/appmsg/show?__biz=MjM5NzM0MjcyMQ==&appmsgid=10001083&itemidx=2&am ...

  4. plain framework 1(简约框架)一款主要用于网络(游戏)开发的C/C++框架 即将开源发布

    在我们的日常开发中,我们往往会遇到这种情况,当我们换了一个开发环境时很可能会重新利用一套新的框架进行开发.由于不同框架有着不同的接口,所以我们不得不花时间再次熟悉这些接口,这将造成开发时间上的重复,而 ...

  5. 多维度对比5款主流分布式MQ消息队列,妈妈再也不担心我的技术选型了

    1.引言 对于即时通讯网来说,所有的技术文章和资料都在围绕即时通讯这个技术方向进行整理和分享,这一次也不例外.对于即时通讯系统(包括IM.消息推送系统等)来说,MQ消息中件间是非常常见的基础软件,但市 ...

  6. 【转】花开正当时,十四款120/128GB SSD横向评测

    原文地址:http://www.expreview.com/19604-all.html SSD横评是最具消费指导意义的评测文章,也是各类热门SSD固态硬盘的决斗疆场.SSD评测在行业内已经有不少网站 ...

  7. 速度竟差9倍!6款32GB USB3.0优盘横评

    速度竟差9倍!6款32GB USB3.0优盘横评 2014-08-22 05:04:00  [  中关村在线 原创  ]   作者: 蒋丽 |  责编:孙玉亮 收藏文章 分页阅读 分享到 评论(90) ...

  8. 加速Web开发的9款知名HTML5框架

    与手工编码比起来,HTML5框架在准确性和正确率方面给予了保证.大多数HTML5框架都会有一个组合或者包含一些额外的组件,比如jQuery Scripts.CSS3样式表则以改善多媒体特征的功能性和响 ...

  9. 20款最受欢迎的HTML5游戏引擎收集

    在“最火HTML5 JavaScript游戏引擎”系列文章国外篇(一)中,我们盘点了当下备受开发者推崇的非国产HTML5和JavaScript游戏引擎.在各种2D小游戏逆袭的今天,用HTML5和Jav ...

随机推荐

  1. .net config文件 配置类的集合

    1,appconfig文件 <configSections> <section name="ToolConfig" type="DMTools.Tool ...

  2. 使用Github Pages创建自己的网站

    这是一篇使用Github Pages创建自己网站的教程,操作很简单,相信,亲们肯定一学就会,但是大家也要有一定的github基础呀,所以小编给大家附上一个链接(http://www.cnblogs.c ...

  3. Oracle实例、用户、权限和角色

    1.数据库的实例:数据库创建后会有一系列为该数据库提供服务的内存空间和后天进程,称为该数据库的实例.每一个数据库至少会有一个实例为其服务.实例中的内存结构称为系统全局区(SGA),系统会根据当前计算机 ...

  4. 解决Eclipse 项目报错:Unbound classpath container

    Eclipse出现下面两条报错: The project cannot be built until build path errors are resolved HelloWord Unknown ...

  5. POJ3208:Apocalypse Someday

    传送门 很神奇的一道题,正解是AC自动机+数位DP,个人感觉POPOQQQ大爷的方法更方便理解. 按照一般套路,先搞个DP预处理,设$f[i][0/1/2/3]$分别表示对于$i$位数,其中有多少个前 ...

  6. Json对象与Json字符串互转(转载)

    一.jQuery插件支持的转换方式 1 $.paseJSON(jsonstr);//将json字符串转换为json对象 二.浏览器支持的转换方式(Firefox,Chrome,Opera,Safair ...

  7. 9月9日HTML上午表单元素2(框架、样式表)

    五.框架 1.frameset是双标签框架集,如果使用框架集,当前页面不能有body. frameset属性:①cols代表左右拆分.cols=“300,*”表示左边框架宽300,右边宽剩余的宽度.* ...

  8. 20145212 《Java程序设计》第3周学习总结

    20145212 <Java程序设计>第3周学习总结 教材学习内容总结 教材第四章知识点总结 面向对象和面向过程: 面向对象是相对面向过程而言的,面向过程强调的是功能行为,面向对象是将过程 ...

  9. Random类

    Random类是随机数产生类,可以指定一个随机数的范围,然后任意产生在此范围中的数字. //================================================= // F ...

  10. string.capwords()函数

    string.capwords()函数 string.capwords()函数,有需要的朋友可以参考下. 代码 : import syssys.path.append("C:/Python2 ...