登錄界面要求:
1、用戶名和密碼輸入有限制,比如長度為10位以下等;
2、點重置則清空用戶名和密碼的輸入,光標定位到用戶名文本框中;
3、輸入用戶名和密碼后,根據根據情況提示成功或提示有誤,請重新輸入。
4、點注冊按鈕后則跳轉到注冊界面。
注冊界面需求:
1、用戶名輸入有限制,比如長度為10位以下等;
2、密碼輸入有限制,如必須使用字符與數字組合,長度為15位以下等;
3、對密碼與確認密碼的輸入進行判斷,當兩次輸入不同時提示重新確認;
4、點注冊按鈕后完成注冊並提示注冊成功與否
5、點重置則清空用戶名和密碼的輸入,光標定位到用戶名文本框中;
界面預覽:
第一步先把窗口設計出來,這一步比較簡單,只是把組件作一些封裝和排列
java Swing圖形界面的組件介紹和用法可以學習dalao的博客 ==> 傳送門
深入地探究還可以學習API參考文獻 ==> 傳送門
package login; //登陸界面類 import java.awt.FlowLayout; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class Lfr { //公共靜態主登陸界面框 public static JFrame frame = new JFrame("登錄界面"); //登陸界面組件 public static JLabel label1 = new JLabel("用戶名"); //標簽 public static JTextField username = new JTextField(10); //文本框 public static JLabel label2 = new JLabel("密 碼"); public static JPasswordField password = new JPasswordField(10); //密碼文本框 public static JButton Signinbtn = new JButton("登錄"); //按鈕 public static JButton registerbtn = new JButton("注冊"); public static JButton resetbtn = new JButton("重置"); //構造函數,創建以及初始化窗口 public Lfr() { //設置窗口大小 frame.setSize(350, 200); //設置按下右上角X號后關閉 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //調用函數初始化窗體的組件 initFrame(); //窗口居中 frame.setLocationRelativeTo(null); //窗口可見 frame.setVisible(true); } public void initFrame() { //定義面板封裝文本框和標簽 JPanel panel01 = new JPanel(new FlowLayout(FlowLayout.CENTER)); //居中面板 panel01.add(label1); panel01.add(username); JPanel panel02 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel02.add(label2); panel02.add(password); //定義面板封裝按鈕 JPanel panel03 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel03.add(Signinbtn); panel03.add(registerbtn); panel03.add(resetbtn); //箱式布局裝入三個面板 Box vBox = Box.createVerticalBox(); vBox.add(panel01); vBox.add(panel02); vBox.add(panel03); //將布局置入窗口 frame.setContentPane(vBox); } public static void main(String[] args) { new Lfr(); } }
package login; //注冊界面類 import java.awt.FlowLayout; import java.awt.Rectangle; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; public class Rfr { public static JFrame frame2 = new JFrame("注冊界面"); public static JLabel label3 = new JLabel("確認密碼"); public static JPasswordField conpassword = new JPasswordField(8); public static JButton rregisterbtn = new JButton("注冊"); public Rfr() { //設置窗口大小 frame2.setSize(350, 200); //設置按下右上角X號后關閉 frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //調用函數初始化窗體的組件 initFrame2(); //新窗口與舊窗口錯開50像素。 frame2.setBounds( new Rectangle( (int) Lfr.frame.getBounds().getX()+ 50, (int) Lfr.frame.getBounds().getY() + 50, (int) Lfr.frame.getBounds().getWidth(), (int) Lfr.frame.getBounds().getHeight() )); //窗口可見 frame2.setVisible(true); } public void initFrame2() { JPanel panel11 = new JPanel(); panel11.add(Lfr.label1); panel11.add(Lfr.username); JPanel panel12 = new JPanel(); panel12.add(Lfr.label2); panel12.add(Lfr.password); JPanel panel13 = new JPanel(); panel13.add(label3); panel13.add(conpassword); JPanel panel14 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel14.add(rregisterbtn); panel14.add(Lfr.resetbtn); Box vBox = Box.createVerticalBox(); vBox.add(panel11); vBox.add(panel12); vBox.add(panel13); vBox.add(panel14); frame2.setContentPane(vBox); } public static void register() { new Rfr(); } }