当前位置: 代码迷 >> Java相关 >> java swing开发中的substance设置lookFeel有关问题
  详细解决方案

java swing开发中的substance设置lookFeel有关问题

热度:37   发布时间:2016-04-22 19:38:32.0
java swing开发中的substance设置lookFeel问题

package com.substance.test;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.jvnet.substance.SubstanceLookAndFeel;
import org.jvnet.substance.border.StandardBorderPainter;
import org.jvnet.substance.button.StandardButtonShaper;
import org.jvnet.substance.skin.CremeSkin;
import org.jvnet.substance.watermark.SubstanceBubblesWatermark;

public class SubsTest {

/**
 * @param args
 */
public static void main(String[] args) {
JFrame frame  = new JFrame();
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu();
menu.setText("Substance Test");
menuBar.add(menu);

frame.setJMenuBar(menuBar);
frame.setSize(200, 100);
frame.setVisible(true);
setLookFeel();
}

public static void setLookFeel() {
try {
// 设置外观
UIManager.setLookAndFeel(new SubstanceLookAndFeel());
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
// 设置主题
SubstanceLookAndFeel.setSkin(new CremeSkin());
// 设置按钮外观
SubstanceLookAndFeel
.setCurrentButtonShaper(new StandardButtonShaper()); // 设置水印
SubstanceLookAndFeel
.setCurrentWatermark(new SubstanceBubblesWatermark());
// 设置边框
SubstanceLookAndFeel
.setCurrentBorderPainter(new StandardBorderPainter());
// 设置渐变渲染
// SubstanceLookAndFeel
// .setCurrentGradientPainter(new StandardGradientPainter());
// 设置标题
// SubstanceLookAndFeel
// .setCurrentTitlePainter(new MatteHeaderPainter());
} catch (UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
}

}

------解决思路----------------------
import java.awt.BorderLayout;
import java.awt.Desktop;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import javax.security.auth.callback.ConfirmationCallback;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import org.jvnet.substance.SubstanceLookAndFeel;
import org.jvnet.substance.skin.BusinessBlackSteelSkin;
import org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel;
import org.jvnet.substance.utils.SubstanceConstants.ImageWatermarkKind;
import org.jvnet.substance.watermark.SubstanceImageWatermark;
import com.xnx3.*;
import UI.BrowserJframe;
import UI.BrowserMainJframe;
import UI.LogJframe;
import UI.MainJframe;
import UI.RegisterJframe;
import UI.Test;
import action.File;
import action.UIFunc;
import include.Command;

public class Main {
public static void main(String[] args) {

lookAndFeel(); //外观设置

}


/**
 * 界面
 */
public static void lookAndFeel(){
try {
//外观设置
UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel());
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
SubstanceLookAndFeel.setSkin(new mySkin());
} catch (Exception e) {
//如果设置lookAndFeel外观失败,则还原为系统风格
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (UnsupportedLookAndFeelException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// new Func.File().log("设置界面外观异常捕获:"+e.getMessage());
}
}

}
class mySkin extends BusinessBlackSteelSkin{

public mySkin(){
super();
try {
//新建一个图片水印,路径可以自己该,使用自己喜欢的图片来做应用程序的水印图片、  
SubstanceImageWatermark watermark = new SubstanceImageWatermark(Main.class.getResourceAsStream("include/Module/j2se/res/bg.png"));
watermark.setOpacity(1f);
        watermark.setKind(ImageWatermarkKind.APP_CENTER);
//         new Func.File().log("创建水印背景完毕");
        this.watermark=watermark;
} catch (Exception e) {
// new Func.File().log("初始化界面捕获异常:"+e.getMessage());
}
}
}
  相关解决方案