快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
ITS LICENSORS BE LIABLE FOR ANY LOST * REVENUE, PROFIT, OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, * INCIDENTAL, OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that this software is not designed, licensed, or intended * for use in the design, construction, operation, or maintenance of any * nuclear facility. */ /* * @(#)AquaTheme.java  1.9 04/07/26 */ import javax.swing.plaf.*; import javax.swing.plaf.metal.*; import javax.swing.*; import javax.swing.border.*; import java.awt.*; /** * This class describes a theme using "blue-green" colors. * * 1.9 07/26/04 * @author Steve Wilson */ public class AquaTheme extends DefaultMetalTheme {    public String getName() { return "Aqua"; }    private final ColorUIResource primary1 = new ColorUIResource(102, 153, 153);    private final ColorUIResource primary2 = new ColorUIResource(128, 192, 192);    private final ColorUIResource primary3 = new ColorUIResource(159, 235, 235);    protected ColorUIResource getPrimary1() { return primary1; }    protected ColorUIResource getPrimary2() { return primary2; }    protected ColorUIResource getPrimary3() { return primary3; } }

Ocean 主题把这个方法运用到了新的极致,它添加了一些新的资源,更新了不仅仅是外观的一些基本属性。

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

时间:2011-01-31 John Zukowski

了解 Synth 外观

我没有提及其他类,但是要介绍 Synth,因为它是 J2SE 5.0 发行版的最新外观,这听起来像是科幻电影中的角色。Synth 是一个“完整”的外观(而不是一个“主题”),它针对的是非程序员,以便他们定制外观。这次,您不能从现有外观或主题派生子类、修改字体或颜色,而是要修改 XML 文件。装入不同的(或修改过的)XML 文件,您就有了一个新的外观。清单 2 仅显示了把程序的外观设置成 Synth 外观形式的代码:

清单 2. 把外观设置成 Synth

SynthLookAndFeel synth = new SynthLookAndFeel();   Class aClass = SynthTest.class;   InputStream is = aClass.getResourceAsStream("file1.xml");   synth.load(is, aClass);   UIManager.setLookAndFeel(synth);

在一些异常处理中会抛出一些问题,但只要修改 file1.xml 文件的内容,程序的外观就会有所改变。

对于 XML 中的大多数事情来说,文件的内容由文档类型定义(DTD)描述。(通过 javax.swing.plaf.synth 包的 Javadoc 页,可以找到这个 DTD 的链接。)只要在 XML 文件中描述组件,然后把文件传给 SynthLookAndFeel 实例的 load() 方法,应用程序的外观就会有所不同。为了演示,清单 3 显示了用来定制 JButton 控件外观的 XML 文件。它把字体默认值设为 24 点黑体 monospaced 的字体,当鼠标移到按钮时,把字体设置为 48 点斜体 serif 字体。这不是所有程序的推荐字体集,仅仅是为了演示才这么用的。

清单 3. 定制 JButton 控件

<synth>   <style id="button">    <font name="Monospaced" size="24" style="BOLD"/>    <state value="MOUSE_OVER">     <font name="Serif"

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号