使用BeautyEye L&F 漂亮外觀 ...
一、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();
}