在java中,界面外观的管理是由UIManager类来管理的。不同的系统上安装的外观不一样 ,默认的是java的跨平台外观。
1、获取系统所有外观
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyWindow1 extends JFrame { public static void main(String []agrs) { UIManager.LookAndFeelInfo []info = UIManager.getInstalledLookAndFeels() ; for(UIManager.LookAndFeelInfo tem:info) { System.out.println(tem.getClassName()); } } }
在本机执行结果如下:
2、设置界面风格方法
try { UIManager.setLookAndFeel(new SubstanceLookAndFeel()); UIManager.put("swing.boldMetal", false); if (System.getProperty("substancelaf.useDecorations") == null)
{
// 使得标题栏和对话框跟随外观变化 JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); } System.setProperty("sun.awt.noerasebackground", "true"); //设置当前的主题风格,同样还可以设置当前的按钮形状,水印风格等等 SubstanceLookAndFeel.setCurrentTheme(new SubstanceLightAquaTheme()); } catch (Exception e) { System.err.println("Oops! Something went wrong!"); }
4、添加水印背景
JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); try { SubstanceImageWatermark watermark = new SubstanceImageWatermark(LoginFrame.class.getResourceAsStream("/001.jpg")); watermark.setKind(ImageWatermarkKind.SCREEN_CENTER_SCALE); SubstanceSkin skin = new OfficeBlue2007Skin().withWatermark(watermark); //初始化有水印的皮肤 UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel()); SubstanceLookAndFeel.setSkin(skin); //设置皮肤 } catch (UnsupportedLookAndFeelException ex) { Logger.getLogger(LoginFrame.class.getName()).log(Level.SEVERE, null, ex); }
SubstanceOfficeBlue2007LookAndFeel来自于开源的substance.jar
原文:http://www.cnblogs.com/clarino/p/5296971.html