【前言】

本文将展示的是一款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. OPRNGL之渲染过程大概梳理

    将OPENGL绘制对象的过程类比为摄像机拍摄物体的过程 视图变换:对摄像机位置与朝向(还有朝上朝下)进行定义 模型变换:对物体的位置,旋转,缩放进行定义 以上是对摄像机和物体的两个基础定义 投影:对摄 ...

  2. 57. Android之程序调试LogCat (转)

    无论什么样的程序开发过程中,出现错误都是不可避免的,一般情况下,语法错误会被开发环境检测到,并能及时的提示我们错误的位置以及修改的方法,但是逻辑错误就不是那么容易被发现了,通常逻辑错误的定位和分析是一 ...

  3. 【BZOJ-1565】植物大战僵尸 拓扑排序 + 最小割

    1565: [NOI2009]植物大战僵尸 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1972  Solved: 917[Submit][Statu ...

  4. Nuget-使用图形化界面打包自己的类库

    到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通过NuGet轻松下载自己需要的类库,下面来说一说如何将自己的 ...

  5. 分区还原工具(DiskGenius)

    不小心删除的分区可以实用DiskGenius进行还原. 下载地址:http://www.upantool.com/qidong/2012/DiskGenius_3.7.1.html 操作方法: 打开D ...

  6. C语言之捕捉信号

    我们有时候需要在程序中做一些对于用户或内核发出的信号后的处理,如写回文件等善后处理的事情,或者直接忽略信号(当你按Ctrl+C时我压根不理你).下面是一段信号处理的代码(POSIX C): int c ...

  7. CVE-2015-1328 Ubuntu 12.04, 14.04, 14.10, 15.04 overlayfs Local Root

    catalog . 引言 . Description . Effected Scope . Exploit Analysis . Principle Of Vulnerability . Patch ...

  8. C# ref的应用

    之前一直只是知道有这么个参数修饰符,也知道用来干嘛的,但是基本就没用上.这几天好好整理了一下,发现ref的修饰符可以帮助简化很多代码.让我更深入的了解到面向对象的深沉含义. 自定义一个类中,类中的方法 ...

  9. xml解析模块

    XML XML是可扩展标记语言的缩写,是实现不同语言或程序之间进行数据交换的协议,主要可以对key添加属性. 页面做展示(字符类型的一个xml格式数据)\做配置文件(内部xml格式的数据).,每一个节 ...

  10. ACM程序对拍

    有时候在OJ刷题目的时候,总是会遇到不知名bug,题目总不能AC,自己测试的一些数据又都能得出正确的结果,又或是直接暴力会TLE,改了算法,但是仍然WA,这时候进行程序对拍测试数据不失为一个好办法.程 ...