java---Swing界面開發總結


一、java的圖形界面

1.awt    java.awt

jdk1.4之前推出的圖形界面,用c/c++編寫,跨平台性不好

2.swing  javax.swing

jdk1.4時推出的圖形界面,跨平台性好

二、常用的組件

1.容器組件

JFrame    窗體類 最頂級的容器(默認布局為邊框布局,不能自己互相添加)

JPanel    面板類 最靈活的容器(可以自己互相添加)

2.元素組件

JLabel   標簽類

JTextField  文本輸入框類(可以設置框內字符、輸入框長度)

JPasswordField 密碼輸入框類(框內字符會被特定字符代替)

JCheckBox  復選框類

JComboBox   下拉框類

JButton    按鈕類

容器和組件都是swing包下的類。javax.swing.JFrame

三、常用的布局

1.布局類只能用在容器中。設置布局時需用setLayout()

BorderLayout  邊框布局(將窗體分為上下左右中五個區域,調用時分別.NORTH,.SOUTH,.WEST,.EAST,.CENTER,若未標明表示CENTER,未添加布局時默認為邊框布局加在中央)

FlowLayout    流式布局(如同文本文檔一樣一行一行排列,排列滿換行,默認方向為從左向右,可以設置對齊方向)

GridLayout    網格布局(可以設置幾列幾行,間距)

這三種都是位於awt包下的類。java.awt.***Layout

四、簡單登錄界面的實現

1.新建一個xxx類(Login),在類中定義主函數。

2.在類中定義一個初始化界面的方法(initUI)

3.在初始化界面的方法中,實例化一個頂級容器(JFrame)類的對象。

4.設置JFrame對象的屬性值(標題,大小,顯示位置,關閉退出程序,禁止調整大小,可見,該步完成對一個窗體的創建)

5.實例化元素組件對象,將對象添加到窗體上

6.在主函數中實例化Login類的對象,用對象名調用初始化界面的方法。

注:setDefaultCloseOperation()括號中可選數字,3是關閉時退出程序。0是不關閉。1是隱藏,2是關閉時程序繼續工作。

setVisible(true)必須放在最后才能顯示所有組件。true為可見。

setSize()大小為像素點的大小。默認起點為左上角。

五、代碼

1.簡單的登錄界面

可以用流式布局或者邊框布局。

Java代碼  

package cn.wz.study0718;  
//定義一個登錄界面  
public class showFrameqq {  
     
          
    //  入口主函數  
           
    public static void main(String[] args) {  
        // 實例化showFrameqq類的對象  
        showFrameqq showqq = new showFrameqq();  
        //調用qq界面的方法  
        showqq.initGUI();  
     
    }  
    //定義一個qq界面的方法  
    public void initGUI(){  
        //實例化一個JFrame類的對象  
        javax.swing.JFrame jf = new javax.swing.JFrame();  
        //設置窗體的標題屬性  
        jf.setTitle("QQ登錄界面");  
        //設置窗體的大小屬性  
        jf.setSize(300,200);  
        //設置窗體的位置屬性  
        jf.setLocation(450,200);  
        //設置窗體關閉時退出程序  
        jf.setDefaultCloseOperation(3);  
        //設置禁止調整窗體的大小  
        jf.setResizable(false);  
              
        //實例化一個布局類的對象  
        java.awt.FlowLayout fl = new java.awt.FlowLayout();   
        //設置窗體的布局方式為流式布局  
        jf.setLayout(fl);  
        //實例化一個JLabel標簽類的對象  
        javax.swing.JLabel jlaName = new javax.swing.JLabel("                                          ");  
        //將jlaName對象添加到容器JFrame對象上  
        jf.add(jlaName);  
        //實例化一個JTextField對象  
        javax.swing.JTextField jteName = new javax.swing.JTextField("賬號",20);  
        //將jteName對象添加到容器JFrame對象上  
        jf.add(jteName);  
        //實例化一個JLabel對象  
        javax.swing.JLabel jlaName2 = new javax.swing.JLabel("注冊賬號");  
        //將jlaName2對象添加到容器JFrame對象上  
        jf.add(jlaName2);  
        //實例化一個JPasswordField對象  
        javax.swing.JPasswordField jpaName = new javax.swing.JPasswordField("請輸入密碼",20);  
        //將jpaName對象添加到容器JFrame對象上  
        jf.add(jpaName);  
        //實例化一個JLabel對象  
        javax.swing.JLabel jlaName3 = new javax.swing.JLabel("找回密碼");  
        //將jlaName3對象添加到容器JFrame對象上  
        jf.add(jlaName3);  
        //實例化一個JCheckBox對象  
        javax.swing.JCheckBox jchName = new javax.swing.JCheckBox("記住密碼");  
        //將jchName3對象添加到容器JFrame對象上  
        jf.add(jchName);  
        //實例化一個JCheckBox對象  
        javax.swing.JCheckBox jchName2 = new javax.swing.JCheckBox("自動登錄");  
        //將jchName3對象添加到容器JFrame對象上  
        jf.add(jchName2);  
        //實例化一個JCheckBox對象  
        javax.swing.JButton jbuName = new javax.swing.JButton("           登             錄          ");  
        //將jButton對象添加到容器JFrame對象上  
        jf.add(jbuName);  
              
        jf.setVisible(true);  
    }  
          
     
} 
   
package cn.wz.study0718;
//定義一個登錄界面
public class showFrameqq {
   
//  入口主函數
    
public static void main(String[] args) {
// 實例化showFrameqq類的對象
showFrameqq showqq = new showFrameqq();
//調用qq界面的方法
showqq.initGUI();
   
}
//定義一個qq界面的方法
public void initGUI(){
//實例化一個JFrame類的對象
javax.swing.JFrame jf = new javax.swing.JFrame();
//設置窗體的標題屬性
jf.setTitle("QQ登錄界面");
//設置窗體的大小屬性
jf.setSize(300,200);
//設置窗體的位置屬性
jf.setLocation(450,200);
//設置窗體關閉時退出程序
jf.setDefaultCloseOperation(3);
//設置禁止調整窗體的大小
jf.setResizable(false);
//實例化一個布局類的對象
java.awt.FlowLayout fl = new java.awt.FlowLayout();
//設置窗體的布局方式為流式布局
jf.setLayout(fl);
//實例化一個JLabel標簽類的對象
javax.swing.JLabel jlaName = new javax.swing.JLabel("                                          ");
//將jlaName對象添加到容器JFrame對象上
jf.add(jlaName);
//實例化一個JTextField對象
javax.swing.JTextField jteName = new javax.swing.JTextField("賬號",20);
//將jteName對象添加到容器JFrame對象上
jf.add(jteName);
//實例化一個JLabel對象
javax.swing.JLabel jlaName2 = new javax.swing.JLabel("注冊賬號");
//將jlaName2對象添加到容器JFrame對象上
jf.add(jlaName2);
//實例化一個JPasswordField對象
javax.swing.JPasswordField jpaName = new javax.swing.JPasswordField("請輸入密碼",20);
//將jpaName對象添加到容器JFrame對象上
jf.add(jpaName);
//實例化一個JLabel對象
javax.swing.JLabel jlaName3 = new javax.swing.JLabel("找回密碼");
//將jlaName3對象添加到容器JFrame對象上
jf.add(jlaName3);
//實例化一個JCheckBox對象
javax.swing.JCheckBox jchName = new javax.swing.JCheckBox("記住密碼");
//將jchName3對象添加到容器JFrame對象上
jf.add(jchName);
//實例化一個JCheckBox對象
javax.swing.JCheckBox jchName2 = new javax.swing.JCheckBox("自動登錄");
//將jchName3對象添加到容器JFrame對象上
jf.add(jchName2);
//實例化一個JCheckBox對象
javax.swing.JButton jbuName = new javax.swing.JButton("           登   錄          ");
//將jButton對象添加到容器JFrame對象上
jf.add(jbuName);
jf.setVisible(true);
}
   
}

  

2.簡單的計算器界面

分析:使用網格布局。

Java代碼  

package cn.wz.study0718;  
//定義一個計算器界面  
public class showCalculaterFrame {  
     
    //入口主函數  
    public static void main(String[] args) {  
        //實例化一個showCalculaterFrame類的對象  
        showCalculaterFrame showCal = new showCalculaterFrame();  
        //調用計算器界面的方法  
        showCal.initGUI();  
     
    }  
    //定義一個計算器界面的方法  
    public void initGUI(){  
        //實例化一個JFrame類的對象  
        javax.swing.JFrame jf = new javax.swing.JFrame();  
        //設置窗體的標題屬性  
        jf.setTitle("計算器");  
        //設置窗體的大小屬性  
        jf.setSize(250,350);  
        //設置窗體的位置屬性  
        jf.setLocation(400,200);  
        //設置窗體關閉時退出程序  
        jf.setDefaultCloseOperation(3);  
        //設置禁止調整窗體的大小  
        jf.setResizable(false);  
              
        //實例化一個JTextField文本框類的對象  
        //javax.swing.JTextField jteName = new javax.swing.JTextField(20);  
        //將jteName添加到容器JFrame上  
        //jf.add(jteName);  
        //實例化一個布局類對象  
        java.awt.GridLayout gr = new java.awt.GridLayout(5,4);  
        //設置窗體的布局方式為網格布局  
        jf.setLayout(gr);  
        //實例化十九個個JButton對象、一個JTextField對象  
        javax.swing.JButton jb1 = new javax.swing.JButton("1");  
        javax.swing.JButton jb2 = new javax.swing.JButton("2");  
        javax.swing.JButton jb3 = new javax.swing.JButton("3");  
        javax.swing.JButton jb4 = new javax.swing.JButton("4");  
        javax.swing.JButton jb5 = new javax.swing.JButton("5");  
        javax.swing.JButton jb6 = new javax.swing.JButton("6");  
        javax.swing.JButton jb7 = new javax.swing.JButton("7");  
        javax.swing.JButton jb8 = new javax.swing.JButton("8");  
        javax.swing.JButton jb9 = new javax.swing.JButton("9");  
        javax.swing.JButton jb0 = new javax.swing.JButton("0");  
        javax.swing.JButton jba = new javax.swing.JButton("+");  
        javax.swing.JButton jbb = new javax.swing.JButton("-");  
        javax.swing.JButton jbc = new javax.swing.JButton("*");  
        javax.swing.JButton jbd = new javax.swing.JButton("/");  
        javax.swing.JButton jbe = new javax.swing.JButton("=");  
        javax.swing.JButton jbf = new javax.swing.JButton("AC");  
        javax.swing.JButton jbg = new javax.swing.JButton("sqrt");  
        javax.swing.JButton jbh = new javax.swing.JButton("1/x");  
        javax.swing.JButton jbi = new javax.swing.JButton(".");  
        javax.swing.JTextField jte = new javax.swing.JTextField();  
        //將JButton對象、JTextField對象添加到容器JFrame上  
        jf.add(jte);  
        jf.add(jbf);  
        jf.add(jbg);  
        jf.add(jbh);  
        jf.add(jb1);  
        jf.add(jb2);  
        jf.add(jb3);  
        jf.add(jba);  
        jf.add(jb4);  
        jf.add(jb5);  
        jf.add(jb6);  
        jf.add(jbb);  
        jf.add(jb7);  
        jf.add(jb8);  
        jf.add(jb9);  
        jf.add(jbc);  
        jf.add(jb0);  
        jf.add(jbi);  
        jf.add(jbe);  
        jf.add(jbd);  
              
        //設置窗體是否可見  
        jf.setVisible(true);  
              
              
              
    }  
     
}

  轉自:http://www.bdqn.cn/news/201307/10424.shtml


免責聲明!

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



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