漂亮的Swing界面 --substance.jar

来源:互联网 发布:人工智能概念股及代码 编辑:程序博客网 时间:2024/06/06 06:08
1.将substance.jar添加到类路径中
2.将下列代码添加到你的程序的主执行类的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!");        }



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

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

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

SubstanceAutumnLookAndFeel.classSubstanceBusinessBlackSteelLookAndFeel.classSubstanceBusinessBlueSteelLookAndFeel.classSubstanceBusinessLookAndFeel.classSubstanceChallengerDeepLookAndFeel.classSubstanceCremeLookAndFeel.classSubstanceEmeraldDuskLookAndFeel.classSubstanceFieldOfWheatLookAndFeel.classSubstanceGreenMagicLookAndFeel.classSubstanceMagmaLookAndFeel.classSubstanceMangoLookAndFeel.classSubstanceMistAquaLookAndFeel.classSubstanceMistSilverLookAndFeel.classSubstanceModerateLookAndFeel.classSubstanceNebulaBrickWallLookAndFeel.classSubstanceNebulaLookAndFeel.classSubstanceOfficeBlue2007LookAndFeel.classSubstanceOfficeSilver2007LookAndFeel.classSubstanceRavenGraphiteGlassLookAndFeel.classSubstanceRavenGraphiteLookAndFeel.classSubstanceRavenLookAndFeel.classSubstanceSaharaLookAndFeel.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.classSubstanceBarbyPinkTheme.classSubstanceBlendBiTheme.classSubstanceBottleGreenTheme.classSubstanceBrownTheme.classSubstanceCharcoalTheme.classSubstanceColorBlindTheme.classSubstanceComplexTheme.classSubstanceCremeTheme.classSubstanceDarkVioletTheme.classSubstanceDesertSandTheme.classSubstanceDeuteranopiaTheme.classSubstanceEbonyTheme.classSubstanceHueShiftTheme.classSubstanceInvertedTheme.classSubstanceJadeForestTheme.classSubstanceLightAquaTheme.classSubstanceLimeGreenTheme.classSubstanceMixBiTheme.classSubstanceMixTheme.classSubstanceNegatedTheme.classSubstanceOliveTheme.classSubstanceOrangeTheme.classSubstanceProtanopiaTheme.classSubstancePurpleTheme.classSubstanceRaspberryTheme.classSubstanceSaturatedTheme.classSubstanceSepiaTheme.classSubstanceShadeTheme.classSubstanceSteelBlueTheme.classSubstanceSunGlareTheme.classSubstanceSunsetTheme.classSubstanceTerracottaTheme.classSubstanceTheme$1$1.classSubstanceTheme$1.classSubstanceTheme$10.classSubstanceTheme$11.classSubstanceTheme$12.classSubstanceTheme$13.classSubstanceTheme$14.classSubstanceTheme$15.classSubstanceTheme$16.classSubstanceTheme$17.classSubstanceTheme$18.classSubstanceTheme$19.classSubstanceTheme$2.classSubstanceTheme$20.classSubstanceTheme$21.classSubstanceTheme$22.classSubstanceTheme$23.classSubstanceTheme$24.classSubstanceTheme$25.classSubstanceTheme$26.classSubstanceTheme$27.classSubstanceTheme$28.classSubstanceTheme$3.classSubstanceTheme$4.classSubstanceTheme$5.classSubstanceTheme$6.classSubstanceTheme$7.classSubstanceTheme$8.classSubstanceTheme$9.classSubstanceTheme$ThemeKind.classSubstanceTheme.classSubstanceTintTheme.classSubstanceToneTheme.classSubstanceTritanopiaTheme.classSubstanceUltramarineTheme.classSubstanceWrapperTheme.class


 

改变界面的默认主题也很简单,只需要加上以下代码就可以了(不过貌似5.0以上没有这个方法了,且substance下也没有theme文件夹了)。另外5.0版本以上必须将这些语句置于

java.awt.EventQueue.invokeLater(new Runnable() {public void run() {   //此处设置皮肤和主题});的run方法中,否则会出错。SubstanceLookAndFeel.setCurrentTheme("org.jvnet.substance.theme.SubstanceDarkVioletTheme");另外如果想让整体界面变得协调,最好设置容器窗体的DefaultLookAndFeelDecorated属性为true。JFrame.setDefaultLookAndFeelDecorated(true);JDialog.setDefaultLookAndFeelDecorated(true);


 

当然除了设置皮肤和主题外,还可以设置按钮、水印、选项卡、滑动条以及水印、字体、标题等的观感。具体的可以查看substance\org\jvnet\substance目录。方法同上面讲的一样。