zoukankan      html  css  js  c++  java
  • java LookAndFeel 美化 Substance使用

    改变外观,似乎是一个很麻烦的事情,幸运的是在swing里,我们只需要简单的一行代码就可以改变
    UIManager.setLookAndFeel(new LookAndFeel());
    比如:
    UIManager.setLookAndFeel(new QuaquaLookAndFeel());
    我们还可以通过
    UIManager.setLookAndFeel(String s);
    来改变外观,其中,s是表示该外观的路径,比如
    UIManager.setLookAndFeel(
    "org.fife.plaf.OfficeXP.OfficeXPLookAndFeel");


    另外,如果该Look And Feel类对窗口的边框还有修饰的话,还可以通过
    JFrame.setDefaultLookAndFeelDecorated(true);
    JDialog.setDefaultLookAndFeelDecorated(true);
    这样一来,窗口就会采用该外观特制的边框.

    最出名的当属Substance。官网:http://insubstantial.github.io/insubstantial/substance/

    使用,将Substance.jar引入到lib中,然后在main中:

     try {
                UIManager.setLookAndFeel(new SubstanceLookAndFeel());
                JFrame.setDefaultLookAndFeelDecorated(true);
                JDialog.setDefaultLookAndFeelDecorated(true);
                SubstanceLookAndFeel.setCurrentTheme(new SubstanceTerracottaTheme());
    //          SubstanceLookAndFeel.setSkin(new EmeraldDuskSkin());
    //          SubstanceLookAndFeel.setCurrentButtonShaper(new ClassicButtonShaper());
    //          SubstanceLookAndFeel.setCurrentWatermark(new SubstanceBubblesWatermark());
    //          SubstanceLookAndFeel.setCurrentBorderPainter(new StandardBorderPainter());
    //            SubstanceLookAndFeel.setCurrentGradientPainter(new StandardGradientPainter());
    //            SubstanceLookAndFeel.setCurrentTitlePainter(new FlatTitePainter());
            } catch (Exception e) {
                System.err.println("Something went wrong!");
            }
    public static void main(String[] args)
        {
            // 装载可选择的主题
            try {
                //设置外观
                UIManager.setLookAndFeel(new SubstanceBusinessBlackSteelLookAndFeel());
                JFrame.setDefaultLookAndFeelDecorated(true);
                //设置主题 
                SubstanceLookAndFeel.setCurrentTheme(new SubstanceEbonyTheme());
                //设置按钮外观
                SubstanceLookAndFeel.setCurrentButtonShaper(new ClassicButtonShaper());
                //设置水印
                SubstanceLookAndFeel.setCurrentWatermark(new SubstanceBinaryWatermark());
                //设置边框
                SubstanceLookAndFeel.setCurrentBorderPainter(new StandardBorderPainter());
                //设置渐变渲染
                SubstanceLookAndFeel.setCurrentGradientPainter(new StandardGradientPainter());
                //设置标题
                SubstanceLookAndFeel.setCurrentTitlePainter(new FlatTitlePainter());
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }

    这个地方主要介绍一下关于使用substance.jar包装程序时对界面效果的几个方面的设置,主要让
    主题,皮肤,按钮类型,水印,边框渲染,渐变渲染与标题栏渲染.

    他们都可以通过 SubstanceLookAndFeel类的静态方法 setCurrentXXX(XXX)来完成设置,其中对皮肤的设置稍有不同,使用静态方法setSkin(),没有Current这个单词,这主要是由于一个皮肤对象中已经包含了所有其他的如主题,水印,按钮类型的设置.另外注意,所以这些类型并没有作为一个类的字段来出现,而且他们各处单独是一个类,所以都需要通过new来创建他们的实例.其中除了皮肤,按钮,标题栏,其他的对象都是以Substance+名称+类型 来命名的.(主题是皮肤的一部分

    共有22种皮肤,69种主题。

    1. 下载下来substance.jar包后,解压JAR文件,可以看到在“org/jvnet/substance/skin”下有下面这些皮肤(以LookAndFeel.class结尾的文件)。

    SubstanceAutumnLookAndFeel.class

    SubstanceBusinessBlackSteelLookAndFeel.class

    SubstanceBusinessBlueSteelLookAndFeel.class

    SubstanceBusinessLookAndFeel.class

     要使用上述皮肤很简单,只要在main函数中调用下面代码即可:

    //主要设置皮肤、主题还有按钮、水印、选项卡、滑动条以及水印等

    //UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessLookAndFeel");

    //UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceOfficeSilver2007LookAndFeel");

    //UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceSaharaLookAndFeel");

    //UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel");

    UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlackSteelLookAndFeel");

    2. org/jvnet/substance/theme 下有可用主题:

    SubstanceAquaTheme.class

    SubstanceBarbyPinkTheme.class

    SubstanceBlendBiTheme.class

    ............

    疑问:

     UIManager.setLookAndFeel(new SubstanceLookAndFeel());
    这里的SubstanceLookAndFeel不是一个skin类,我在skin下找不到这个类


    参考:http://hi.baidu.com/jxqlovejava/item/fe3116cd169593d0ee183b37

    http://hitzsf.blog.163.com/blog/static/34668206201172110510740/

    http://blog.csdn.net/zhenshiyiqie/article/details/8425923

    http://www.iteye.com/topic/394314

  • 相关阅读:
    SlickEdit 中 GDB 调试时SIG32 使得无法跟踪的问题 解决方法
    ln与mount
    ubuntu12.04 的 root 用户显示 中文 和 默认显示中文的方法
    ASP.NET MVC控制器作用
    ASP.NET管道模型
    第二章MVC框架如何截获请求
    第一章MVC与WebForms处理请求的区别
    asp.net运行原理一
    一个通配符引起的错误
    关于权限
  • 原文地址:https://www.cnblogs.com/youxin/p/3137980.html
Copyright © 2011-2022 走看看