给Java的Swing应用程序界面换漂亮的皮肤

时间:2023-01-26 23:53:28

1 j2se自己带的LookAndFeel,能在系统上运行的好像只有 metal(金属外观-跨平台但比较丑陋)和与操作系统风格一致的两个LookAndFeel。如果想要使用其他皮肤,可以在网上下载第三方的jar进行支持

2 这一个觉得还不错,他里面集成了有多种样式的皮肤可供选择。(Substance look & feel ),只需把substance.jar导入即可。要求JDK为5.0及以上,Substance look & feel主页:https://substance.dev.java.net/ 方法如下:

(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包装程序时对界面效果的几个方面的设置,主要要
主题,皮肤,按钮类型,水印,边框渲染,渐变渲染与标题栏渲染.
他们都可以通过SubstanceLookAndFeel类的静态方法 setCurrentXXX(XXX)来完成设置,其中对皮肤的设置稍有不同,使用静态方法setSkin(),没有Current这个单词,这主要是由于一个皮肤对象中已经包含了所有其他的如主题,水印,按钮类型的设置.另外注意,所以这些类型并没有作为一个类的字段来出现,而且他们各处单独是一个类,所以都需要通过new来创建他们的实例.其中除了皮肤,按钮,标题栏,其他的对象都是以Substance+名称+类型来命名的.

3 Substance中虽然有不少皮肤,但其实这些皮肤只是颜色的差异,如果想要使用其他个性的皮肤,可以到http://www.open-open.com/61.htm这里介绍了不少.