【前言】

本文将展示的是一款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. UOJ147 斗地主

    题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关 系根据牌的数码表示如下:3<4&l ...

  2. Bzoj1449 [JSOI2009]球队收益

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 741  Solved: 423 Description Input Output 一个整数表示联盟里所有球 ...

  3. Linux.BackDoor.Chikdos/Elknot Attack And Defense Analysis

    catalogue . 恶意程序概述 . 模块分解 . 通信协议 . 木马清理 1. 恶意程序概述 Trojan.Chikdos.A是一个木马,它允许远程攻击者利用受感染计算机发动DDoS攻击 . 木 ...

  4. Capture

    1.导出Logical symbol 单个元件导出放入指定库:左键选中元件→右键“Edit Parts”→View“Package”→file“Save As”→找到要存放的库. 从某个已经设计好的原 ...

  5. Unity连Photon服务器入门详解

    Photon是目前比较好用的游戏服务器.目前网上对于Photon的服务器讲解比较少,最近也对Photon做了初步的了解,做一个极其详细的入门. 首先就是得下载Photon咯 https://www.p ...

  6. div内容上下居中

    今天无聊闲逛技术群,听一哥们说要在div里面居中span内容. 第一印象:vertical-align: middle; 结果失效.因为他只对属于inline的元素或是inline-block.tab ...

  7. C++ 之 Direct and Copy Forms of Initialization

    Extraction from C++ Primer 5th. Editioin 3.2.1 C++ has several different forms of initialization, we ...

  8. 对WEB标准以及W3C的理解与认识

    按照习惯的理解,这两个概念似乎都是指的一个东西(就是咱们在这个版里讨论的这些个"高深理论“^_^).但我认为,事实上从技术的角度上讲,这两个事物几乎没有任何相关性.web标准简而言之就是将页 ...

  9. python json.dumps() json.dump()的区别

    以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些.如果还有不好的地方,欢迎指出. 首先说明基本功能: dumps是将dict转化成s ...

  10. ubuntu 设置hostname

    永久修改hostname: # sudo vim /etc/hostname # sudo vim /etc/hosts