【前言】

本文将展示的是一款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. asp.net下webform的ReadOnly和Enabled属性最终渲染的结果

    ReadOnly对应readonly="readonly" Enabled对应disabled="disabled" 然后研究了一下这两种的用法,特此标记一下: ...

  2. SPOJ375 Query on a tree

    Description You are given a tree (an acyclic undirected connected graph) with N nodes, and edges num ...

  3. Windows Sqlserver Automatic Log Audit Via C/C++

    catalog . 数据库日志审计产品 . Mysql日志审计 . SQLServer日志审计 1. 数据库日志审计产品 Relevant Link: http://enterprise.huawei ...

  4. C#调试方法

    单步执行 有三种, 一种是每次执行一行(F10): 一种是每次执行一行,但遇到函数调用就会跳到被调用的函数里(F11): 一种是直接执行当前函数里剩下的指令,返回上一级函数(Shift+F11). 还 ...

  5. POJ #2448 A New Operating System

    Time Limit: 20000MS   Memory Limit: 65536K Total Submissions: 1165   Accepted: 110 Case Time Limit: ...

  6. AngularJs angular.identity和angular.noop

    angular.identity 函数返回本身的第一个参数.这个函数一般用于函数风格. 格式:angular.identity() 使用代码: (function () { angular.modul ...

  7. iOS - 落叶加载动画效果

    代码下载地址:https://github.com/nLoser/LeafLoadingView 效果: 说明:效果是在网上看到的,并且自己按照效果自己实现,树叶使用CAEmitterLayer做的, ...

  8. 如何让vim编辑器永久显示行号

    在Linux环境下的编辑器有vi.vim.gedit等等.进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的.我们有二种办法可以解决: 第一种是,手动显示:在 ...

  9. omnet++5.0安装使用

    1.下载Windows安装包,5.0的omnetpp-5.0-src-windows.zip 2.解压到d盘 3.D:\omnetpp-5.0\doc找到这个目录,下面有个InstallGuide.p ...

  10. NXP Mifare S50标准IC卡- 访问位(Access Bits) 分析

    Mifare S50 标准IC卡有1K 字节的EEPROM,主要用来存储数据和控制信息.1K 字节的EEPROM分成16 个区,每区又分成4 段,每1段中有16 个字节.每个区的最后一个段叫“尾部&q ...