一、Swing外觀框架BeautyEye使用
1.1 導包
1.2 使用BeautyEye L&F
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
// 國人牛逼主題,值得學習
// 初始化字體
InitGlobalFont(new Font("微軟雅黑", Font.PLAIN, 13));
// 設置主題為BeautyEye
try {
org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
} catch (Exception e) {
e.printStackTrace();
}
new SwingDemo();
}
});
}
1.2.1 如何定義窗口邊框類型
public static void main(String[] args){
EventQueue.invokeLater(new Runnable() {
public void run() {
try{
// 設置本屬性將改變窗口邊框樣式定義
BeautyEyeLNFHelper.frameBorderStyle = BeaytyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
} catch(Exception e){
// TODO exception
}
}
})
}
有幾種窗口邊框類型
序號
窗口邊框類型
代碼
BeautyEye中默認使用
1
系統默認邊框
osLookAndFeelDecorated
2
強立體感半透明邊框
translucencyAppleLike
java1.6及更高版本
3
弱立體感半透明邊框
translucencySmallShadow
4
普通不透明邊框
generalNoTranslucencyShadow
java1.5版本時
1.2.2 如何使用不同顏色的按鈕
public JButton button;
序號
代碼
1
button.setUI(new BEButton().setNormalColor(NormalColor.normal));
2
button.setUI(new BEButton().setNormalColor(NormalColor.green));
3
button.setUI(new BEButton().setNormalColor(NormalColor.lightBlue));
4
button.setUI(new BEButton().setNormalColor(NormalColor.blue));
4
button.setUI(new BEButton().setNormalColor(NormalColor.red));
1.2.3 如何隱藏“設置”按鈕
說明: 該按鈕目前僅作為演示窗口標題按鈕的自定義能力之用,未來將開放自定義功能,目前可以選擇隱藏之。
UIManager.put("RootPane.setupButtonVisible",false);
1.2.4 如何開啟/關閉窗口在不活動時的半透明效果
說明: 設置此開關量為false即表示關閉之,BeautyEye LNF中默認是true。
BeautyEyeLNFHelper.translucencyAtFrameInactive = true;
1.2.5 怎樣讓JToolBar的UI不使用漸變圖片而使用傳統的純色來填充背景
方法一:設置屬性即可:true表示使用ToolBar.background顏色實現純色填充背景,BeautyEye中此屬性默認是false
UIManager.put("ToolBar.isPaintPlainBackground", Boolean.TRUE);
方法二:使用ClientProperty單獨設置控制每個toolbar:true表示使用ToolBar.background顏色實現純色填充弄背景,BeautyEye中此屬性是false
JToolBar jToolBar;
jToolBar.putClientProperty("ToolBar.isPaintPlainBackground",Boolean.TRUE);
說明: 方法二可以單獨控制每一個JToolBar組件,而方法一是全局屬性,方法二的優先級高于方法一。
1.2.6 如何自定義JToolBar UI的border
@since v3.4
加入以下代碼,使用你自己的border:
// 自定義JToolBar UI的border
Border bd = new ToolBarBorder(
UIManager.getColor("ToolBar.shadow"),//Floatable 時觸點的顏色
UIManager.getColor("TooBar.highlight"),//Floatable時觸點的陰影顏色
new Insets(20,20,20,20)//上,左,下,右
);
UIManager.put("ToolBar.border", new BorderUIResource(bd));
說明: 以上代碼必須在 ++“BeautyEyeLNFHelper.lauchBeautyEyeLNF();”++ 之后執行方能生效。
1.2.7 如何設置BEautyEye外觀下JTabbedPane選項卡的左縮進
//改變InsetsUIResource參數的值即可實現
UIManager.put("TabbedPane.tabAreaInsets",new InsetsUIResource(3, 20, 2, 20));
說明: 以上代碼必須在 ++“BeautyEyeLNFHelper.lauchBeautyEyeLNF();”++ 之后執行方能生效。
1.2.8 如何調置窗體背景全透明并完全隱藏一個窗體的標題欄
在你的窗體被SetVisible(true)前調用一下代碼即可:
//set frame full transparent
frame.setUndercorated(true);
AWTUtilities.setWindowOpaque(frame,false);
frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
說明: 以上代碼適用于所有處于非系統窗體標題欄的情況。包括官方MetalLookAndFeel外觀等。
1.3 UIManager類的簡單使用
讓swing窗體變得更加漂亮的代碼,該代碼的作用是讓swing界面變得和當前系統一樣,如果是windows8就變得和windows8一樣漂亮。
如果是xp同樣原理。 代碼使用方法,添加到任意一個函數里面都可以,但是要調用該函數,建議放在構造函數里面
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}