快速业务通道

驯服Tiger: 当Ocean和Synth遇上Metal - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

驯服Tiger: 当Ocean和Synth遇上Metal

时间:2011-01-31 John Zukowski

正式发布:2004 年 9 月 30 日,Java 2 开发工具包 5.0 版(对,就是以前的 JDK)隆重登场。作为新平台的一部分,您可以得到两个面目一新的对象,它们可以让您更改程序的用法和外观。Ocean 是 Java 新的默认外观,它取代了原有的 Metal 版本。Synth 是新东西,它通过外部 XML 文件提供外观的说明。

Ocean 详解

抛弃了1.4 默认的老旧的 Metal 外观之后,在 Java 运行时环境 5.0 中,您现有拥有了一个新的、称为 Ocean 的外观。但是 Ocean 并不是一个全新的外观。Ocean 并没有重新从头开始设计一个新的外观,而是被作为 Metal 外观的一个新主题。这意味着,如果您已经定制了 Metal 外观,那么您的程序在 5.0 下看起来会和以前一样。如果您使用新的 Ocean 主题,那么程序看起来就会不一样。

如果您不熟悉主题,那么抽象类 MetalTheme 提供了一个抽象外观使用的颜色和字体的方法。实际上,通过改变主题,您可以改变外观的效果。而且,这就是 Ocean 要做的事情。正因如此,Ocean 并不是一个“真正”的外观。相反, OceanTheme 类为 Swing 提供了一种更柔和的外观。用 SwingSet2 的演示程序作为向导,比较图 1 中 Meta 外观的原有主题 Steel 与图 2 中 Metal 外观的 Ocean 主题:

图 1. Metal 的 Steel 主题

驯服Tiger: 当Ocean和Synth遇上Metal - 编程入门网

图 2. Metal 的 Ocean 主题

驯服Tiger: 当Ocean和Synth遇上Metal - 编程入门网

驯服Tiger: 当Ocean和Synth遇上Metal(2)

时间:2011-01-31 John Zukowski

请注意图 2 中按钮组件的渐变背景。这项技术显示了柔化 1.4 版本的颜色集的一种方法。如果您想使用老方法,只需把 Metal 的主题设置回 steel 即可。可以用下面的代码强制系统属性 swing.metalTheme 用 Metal 外观的 steel 主题启动程序:

java -Dswing.metalTheme=steel packageName.ClassName

SwingSet2 演示程序中没什么新东西,但它显示了其他许多主题,其中包括 Aqua 和 Charcoal。使用 Aqua 主题的源代码,如清单 1 所示,这些代码要做的全部工作就是重新映射了一些颜色。

清单 1. Aqua 主题源代码

/* * @(#)AquaTheme.java  1.9 04/07/26 * * Copyright (c) 2004 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * -Redistribution of source code must retain the above copyright notice, this * list of conditions, and the following disclaimer. * * -Redistribution in binary form must reproduce the above copyright notice, * this list of conditions, and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of Sun Microsystems, Inc. or the names of contributors may * be used to endorse or promote products derived from this software without * specific prior written permission. * * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS, AND WARRANTIES, INCLUDING * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE * AS A RESULT OF USING, MODIFYING, OR DISTRIBUTING THIS SOFTWARE OR ITS * DERIVATIVES. IN NO EVENT WILL SUN OR

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号