A、首先更改窗體左上角的圖片
步驟一:
創建3個包,分別建立1個類
第一個是窗體的包,窗體類:設置窗體的主要布置和功能
第二個是資源包,圖片:把想要改的圖案拉進來
第三個是UI界面包,UI界面設計類:專門對窗體界面進行美化
步驟二:
在UI界面設計類中寫代碼:
1 /** 2 * 做皮膚效果的類 3 */ 4 package zl_util; 5 6 import java.awt.Image; 7 import java.awt.Toolkit; 8 import javax.swing.JFrame; 9 10 public class UiUtil { 11 //私有化 12 private UiUtil(){} 13 //修改窗體的圖標 14 //Frame 是帶有標題和邊框的頂層窗口。 15 //JFrame 是java.awt.Frame 的擴展版本 16 public static void setFramerImage(JFrame jf){ 17 18 //創建工具類對象 19 //public static Toolkit getDefaultToolkit():獲取默認工具包。 20 Toolkit t = Toolkit.getDefaultToolkit(); 21 22 //創建圖像類對象,並使用工具類根據路徑獲取圖片 23 Image i = t.getImage("src\\zl_resource\\jjcc.jpg"); 24 25 //更改窗體的圖標 26 jf.setIconImage(i); 27 28 //這些搞定后,去設置窗體類的源碼中調用這個方法 29 } 30 }
步驟三:
窗體類中寫主要代碼,上一章的。(未校驗版本)
只不過這次要在源碼中調用步驟二中的,UI界面設計類中的方法,從而實現界面美化
1 public class NewJFrame1 extends javax.swing.JFrame { 2 3 /** 4 * Creates new form NewJFrame1 5 */ 6 public NewJFrame1() { 7 initComponents(); 8 init(); 9 } 10 private void init(){ 11 this.setTitle("四則運算計算器"); 12 UiUtil.setFramerImage(this); 13 }
B、設置窗體一啟動就在屏幕的中央
步驟一:在UI界面設計類中添加一個方法:
1 //設置窗體出現在屏幕中央 2 public static void setFrameCenter(JFrame jf){ 3 /* 4 思路: 5 A:首先獲取屏幕的長和寬 6 B:然后獲取窗體的長和寬 7 C:再用屏幕的長和寬分別減去窗體的,再除以2 8 D:得到的值作為窗體出現的坐標 9 */ 10 //獲取默認工具包 11 Toolkit tl = Toolkit.getDefaultToolkit(); 12 13 //獲取屏幕的長和寬,不確定什么類型,用double類 14 //public abstract Dimension getScreenSize() 15 Dimension d = tl.getScreenSize(); 16 double ScreenHeigth = d.getHeight(); 17 double ScreenWidth = d.getWidth(); 18 19 //獲取窗體的長和寬,這個是int類的 20 int FrameWidth = jf.getWidth(); 21 int FrameHeigth = jf.getHeight(); 22 23 //相減再除以2,因為設置窗體出現的坐標所需要的是int類的,所以要轉換成int類 24 int Higth = (int)(ScreenHeigth - FrameHeigth)/2; 25 int Width = (int)(ScreenWidth - FrameWidth)/2; 26 27 //值作為窗體出現的坐標 28 jf.setLocation(Width, Higth); 29 30 //去窗體類中調用該方法 31 }
步驟二:
去窗體類中調用該方法,不粘貼了。
C、更換窗體的皮膚
步驟一:把相關的皮膚jar文件和相關的皮膚路徑包導入
步驟二:
在窗體類中的main方法里使用皮膚:
看綠色和黃色的字段,其它都是拋出的異常。
1 public static void main(String args[]) { 2 /* Set the Nimbus look and feel */ 3 //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 4 /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 5 * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 6 */ 7 try { 8 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 9 if ("Nimbus".equals(info.getName())) { 10 javax.swing.UIManager.setLookAndFeel(info.getClassName()); 11 break; 12 } 13 } 14 } catch (ClassNotFoundException ex) { 15 java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 16 } catch (InstantiationException ex) { 17 java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 18 } catch (IllegalAccessException ex) { 19 java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 20 } catch (javax.swing.UnsupportedLookAndFeelException ex) { 21 java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 22 } 23 //</editor-fold> 24 try { 25 //UIManager 管理當前外觀、可用外觀集合、外觀更改時被通知的 PropertyChangeListeners、外觀默認值以及獲取各種默認值的便捷方法。 26 //public static void setLookAndFeel(LookAndFeel newLookAndFeel 將當前外觀設置為 newLookAndFeel 27 UIManager.setLookAndFeel(MyLookAndFeel.SYS_WINDOWS); 28 29 30 } catch (ClassNotFoundException ex) { 31 Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 32 } catch (InstantiationException ex) { 33 Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 34 } catch (IllegalAccessException ex) { 35 Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 36 } catch (UnsupportedLookAndFeelException ex) { 37 Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 38 }