好久沒有總結這個月的學習了,先嘮叨幾句,這個月工作爛的一塌糊塗。跟老闆吵架,然後辭職。今天是遞交辭職申請的倒數第三天。
Java使用者登陸這塊,主要還是學到了新的類:
1,邊界布局:BorderLayout。他主要分為五個布局,是JFrame(頂層容器),JDialog(建立對話方塊視窗的類)的預設布局方式。其最多容量為5個組件,超出5個得用其他的。設定方式為:BorderLayout.NORTH;BorderLayout.SOUTH;BorderLayout.CENTER;Borderlayout.CENTER;BorderLayout.LEFT;BorderLayout.RIGHT。
2,流式布局:FlowLayout。布局方式為從左至右,從上到下。是JPanel(輕量級容器)的預設面板布局。
3,網格布局:GridLayout。布局方式為行和列組成的網路。布局方法:setLayout(new GridLayout(3,2,3,3));其中強兩位元字表示三行兩列,後兩位表示行與行的間距為3,列與列的間距為3.
接著,就接觸到JPanel面板。JPanel是非頂層容器,所以,一個介面只能由一個JFrame,但是可以有多個JPanel組件。其預設布局方式為流式布局。在JPanel這塊,學到了使用者登入介面的設計。從而接觸到另外三個組件:文字框組件:JTextField;密碼框組件:JPasswordField;標籤組件:JLabel;複選框組件:JCheckBox;單選框組件:JRadioButton;按鈕組件JButton。
根據上面的組件和布局方式,我試著做了如下效果的一些代碼:
1,使用者登陸介面:
具體代碼如下:
1 import javax.swing.*; 2 3 import java.awt.*; //匯入必要的包 4 5 public class denglu extends JFrame{ 6 JTextField jTextField ; //定義文字框組件 7 JPasswordField jPasswordField; //定義密碼框組件 8 JLabel jLabel1,jLabel2; 9 JPanel jp1,jp2,jp3;10 JButton jb1,jb2; //建立按鈕11 public denglu(){12 jTextField = new JTextField(12);13 jPasswordField = new JPasswordField(13);14 jLabel1 = new JLabel("使用者名稱");15 jLabel2 = new JLabel("密碼");16 jb1 = new JButton("確認");17 jb2 = new JButton("取消");18 jp1 = new JPanel();19 jp2 = new JPanel();20 jp3 = new JPanel();21 22 //設定布局23 this.setLayout(new GridLayout(3,1));24 25 jp1.add(jLabel1); 26 jp1.add(jTextField);//第一塊面板添加使用者名稱和文字框 27 28 jp2.add(jLabel2);29 jp2.add(jPasswordField);//第二塊面板添加密碼和密碼輸入框30 31 jp3.add(jb1);32 jp3.add(jb2); //第三塊面板添加確認和取消33 34 // jp3.setLayout(new FlowLayout()); //因為JPanel預設布局方式為FlowLayout,所以可以登出這段代碼.35 this.add(jp1);36 this.add(jp2);37 this.add(jp3); //將三塊面板添加到登陸框上面38 //設定顯示39 this.setSize(300, 200);40 //this.pack();41 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);42 this.setVisible(true);43 this.setTitle("登陸");44 45 }46 public static void main(String[] args){47 new denglu();48 }49 }
2,根據複選框組件等其他組件,又寫了使用者調查介面:
具體代碼:
1 import javax.swing.ButtonGroup; 2 import javax.swing.JCheckBox; 3 import javax.swing.JFrame; 4 import javax.swing.JLabel; 5 import javax.swing.JPanel; 6 import javax.swing.JRadioButton; 7 8 import java.awt.*; 9 10 public class diaocha extends JFrame{11 JCheckBox jcb1,jcb2,jcb3;12 JRadioButton jrb1,jrb2;13 JLabel jLabel1,jLabel2;14 JPanel jp1,jp2;15 public diaocha(){16 jcb1 = new JCheckBox("華商報");17 jcb2 = new JCheckBox("三秦都市報");18 jcb3 = new JCheckBox("西安晚報");19 jrb1 = new JRadioButton("男");20 jrb2 = new JRadioButton("女");21 jLabel1 = new JLabel("您最常讀的報紙");22 jLabel2 = new JLabel("您的性別");23 jp1 = new JPanel();24 jp2 = new JPanel();25 //設定布局26 this.setLayout(new GridLayout(2, 1));27 //添加組件28 jp1.add(jLabel1);29 jp1.add(jcb1);30 jp1.add(jcb2);31 jp1.add(jcb3);32 jp2.add(jLabel2);33 //現在這樣的話,最後還是會對性別進行全部選擇的。所以添加按鈕對象,對同一組選項按鈕驚醒分組34 ButtonGroup bGroup = new ButtonGroup();35 bGroup.add(jrb1);36 bGroup.add(jrb2);37 jp2.add(jrb1);38 jp2.add(jrb2);39 this.add(jp1);40 this.add(jp2);41 42 //設定展示面板43 this.setVisible(true);44 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);45 this.setSize(200, 200);46 }47 public static void main(String[] args){48 new diaocha();49 }50 }