1、java的圖形界面html
1.awt java.awtjava
jdk1.4以前推出的圖形界面,用c/c++編寫,跨平臺性很差c++
2.swing javax.swing函數
jdk1.4時推出的圖形界面,跨平臺性好佈局
2、經常使用的組件htm
1.容器組件對象
JFrame 窗體類 最頂級的容器(默認佈局爲邊框佈局,不能本身互相添加)blog
JPanel 面板類 最靈活的容器(能夠本身互相添加)文檔
2.元素組件it
JLabel 標籤類
JTextField 文本輸入框類(能夠設置框內字符、輸入框長度)
JPasswordField 密碼輸入框類(框內字符會被特定字符代替)
JCheckBox 複選框類
JComboBox 下拉框類
JButton 按鈕類
容器和組件都是swing包下的類。javax.swing.JFrame
3、經常使用的佈局
1.佈局類只能用在容器中。設置佈局時需用setLayout()
BorderLayout 邊框佈局(將窗體分爲上下左右中五個區域,調用時分別.NORTH,.SOUTH,.WEST,.EAST,.CENTER,若未標明表示CENTER,未添加布局時默認爲邊框佈局加在中央)
FlowLayout 流式佈局(如同文本文檔同樣一行一行排列,排列滿換行,默認方向爲從左向右,能夠設置對齊方向)
GridLayout 網格佈局(能夠設置幾列幾行,間距)
這三種都是位於awt包下的類。java.awt.***Layout
4、簡單登陸界面的實現
1.新建一個xxx類(Login),在類中定義主函數。
2.在類中定義一個初始化界面的方法(initUI)
3.在初始化界面的方法中,實例化一個頂級容器(JFrame)類的對象。
4.設置JFrame對象的屬性值(標題,大小,顯示位置,關閉退出程序,禁止調整大小,可見,該步完成對一個窗體的建立)
5.實例化元素組件對象,將對象添加到窗體上
6.在主函數中實例化Login類的對象,用對象名調用初始化界面的方法。
注:setDefaultCloseOperation()括號中可選數字,3是關閉時退出程序。0是不關閉。1是隱藏,2是關閉時程序繼續工做。
setVisible(true)必須放在最後才能顯示全部組件。true爲可見。
setSize()大小爲像素點的大小。默認起點爲左上角。
5、代碼
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