java 24 - 9 GUI 之 給窗體換圖標、設置啟動在屏幕中間、更換皮膚


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         }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM