2018-10-28 15:54:38 開始寫
1 import javax.swing.JFrame; 2 import javax.swing.JPanel; 3 import javax.swing.border.EmptyBorder; 4 import javax.swing.JLabel; 5 import javax.swing.JOptionPane; 6 7 import java.awt.Font; 8 import javax.swing.JTextField; 9 import javax.swing.SwingConstants; 10 import javax.swing.JButton; 11 import javax.swing.JPasswordField; 12 13 import java.awt.event.ActionEvent; 14 import java.awt.event.ActionListener; 15 import javax.swing.ImageIcon; 16 import java.awt.Color; 17 18 public class Login extends JFrame { 19 private JPanel contentPane; //面板 20 private JTextField tName;//賬號輸入框 21 private JPasswordField passwordField; //密碼輸入框 22 private JLabel lblBanner; //QQ登錄圖片 23 public static void main(String[] args) { 24 // TODO Auto-generated method stub 25 Login frame = new Login(); //實例化Login 26 frame.setVisible(true); //使窗體顯示 27 } 28 public Login() { //無參構造方法 29 setResizable(false); //窗口邊界不可拉伸 30 setTitle("QQ登錄窗口");//設置窗口標題 31 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉並退出 32 setBounds(100, 100, 406, 289);//初始位置及大小 33 34 contentPane = new JPanel();//實例化面板 35 contentPane.setBackground(Color.white);//背景顏色 36 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));//外邊距 37 setContentPane(contentPane);//將面板放進窗口 38 contentPane.setLayout(null);//布局方式 39 40 JLabel lblName = new JLabel("用戶名:"); //賬號標簽 41 lblName.setFont(new Font("幼圓", Font.PLAIN, 16));//標簽字體 類型 大小 42 lblName.setBounds(115, 144, 64, 18);//初始位置及大小 43 contentPane.add(lblName); //將標簽添加進面板 44 45 tName = new JTextField();//實例化賬號輸入框 46 tName.setBounds(180, 143, 156, 21);//初始位置及大小 47 contentPane.add(tName);//添加進面板 48 tName.setColumns(10);//最大輸入列數 49 50 tName.addActionListener(new ActionListener() { // 添加動作監聽的事件 51 @Override 52 public void actionPerformed(ActionEvent e) { // 發生操作時 53 passwordField.requestFocus(); //當寫完賬號后回車,自動跳轉到密碼框 54 } 55 }); 56 57 JLabel lblPwd = new JLabel("密碼:");//密碼標簽 58 lblPwd.setHorizontalAlignment(SwingConstants.RIGHT);//水平居中 59 lblPwd.setFont(new Font("幼圓", Font.PLAIN, 16));//字體 60 lblPwd.setBounds(125, 175, 54, 15);//位置大小 61 contentPane.add(lblPwd);//添加 62 63 passwordField = new JPasswordField();//實例化 64 passwordField.setBounds(180, 172, 156, 21);//位置大小 65 contentPane.add(passwordField);//添加 66 passwordField.addActionListener(new ActionListener() { // 添加動作監聽的事件,輸入完密碼后回車,作用和登錄按鈕相同 67 @Override 68 public void actionPerformed(ActionEvent e) { // 發生操作時 69 if (tName.getText().equals("yujie") && passwordField.getText().equals("yujie")) { // “登陸成功”的條件 70 JOptionPane.showMessageDialog(null, "登錄成功!", "Success", JOptionPane.INFORMATION_MESSAGE); // 彈出框:“登陸成功!” 71 } else if (tName.getText().equals("") || passwordField.getText().equals("")) { // 文本框為空時 72 JOptionPane.showMessageDialog(null, "用戶名或密碼不能為空!", "Warning", JOptionPane.WARNING_MESSAGE); // 彈出框:“用戶名或密碼不能為空!” 73 } else { // 以上條件都不滿足的時候 74 JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤!", "Error", JOptionPane.ERROR_MESSAGE); // 彈出框:“用戶名或密碼錯誤!” 75 } 76 } 77 }); 78 79 JButton btnLogin = new JButton("登 錄"); //登錄按鈕 80 btnLogin.addActionListener(new ActionListener() { // 添加動作監聽的事件 81 @Override 82 public void actionPerformed(ActionEvent e) { // 發生操作時 83 if (tName.getText().equals("yujie") && passwordField.getText().equals("yujie")) { // “登陸成功”的條件 84 JOptionPane.showMessageDialog(null, "登錄成功!", "Success", JOptionPane.INFORMATION_MESSAGE); // 彈出框:“登陸成功!” 85 } else if (tName.getText().equals("") || passwordField.getText().equals("")) { // 文本框為空時 86 JOptionPane.showMessageDialog(null, "用戶名或密碼不能為空!", "Warning", JOptionPane.WARNING_MESSAGE); // 彈出框:“用戶名或密碼不能為空!” 87 } else { // 以上條件都不滿足的時候 88 JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤!", "Error", JOptionPane.ERROR_MESSAGE); // 彈出框:“用戶名或密碼錯誤!” 89 } 90 } 91 }); 92 btnLogin.setFont(new Font("幼圓", Font.PLAIN, 16));//按鈕字體 93 btnLogin.setBounds(125, 216, 156, 23);//位置大小 94 contentPane.add(btnLogin);//添加 95 96 97 lblBanner = new JLabel("");//用於添加QQ界面圖片 98 lblBanner.setIcon(new ImageIcon(Login.class.getResource("QQLogin.png")));//圖標 99 lblBanner.setBounds(0, 0, 400, 129);//位置大小 100 contentPane.add(lblBanner);//添加 101 102 JLabel lblIcon = new JLabel("");//用於添加頭像 103 lblIcon.setIcon(new ImageIcon(Login.class.getResource("yujie.png")));//圖標 104 lblIcon.setBounds(56, 140, 55, 55);//位置大小 105 contentPane.add(lblIcon);//添加 106 } 107 }
說明:
首先注釋很詳細。
登錄三種情況:
一種是無輸入,彈出警告
一種的輸入錯誤,彈出錯誤
最后是輸入賬號密碼都為yujie,yujie,彈出成功
感謝閱讀(謝謝、Thank you、Salamat Do(撒拉瑪特朵)、あリがCám o*n(嘉蒙)とゥ(阿里嘎都)、감사합니다 (勘三哈咪瘩)、terima Kasih(
得力馬卡系)、kob-khun(寇布庫恩)、dhanyavaad(達尼阿瓦德)、toda(透達)、te?ekkür ederim(特謝庫爾埃戴里姆)、
Dzie,kuje(以庫以而)、Spasibo(思巴喜柏)、Danke(但可)、shokran(休克朗)、Obrigada(歐布哩嘎搭)、dank u(當Q)、
Merci(梅呵西)、Gracias(格拉喜亞思)、Grazie(格啦姬)、Благодарности、Tak、Kiitos、Díky、Hvala、Mul?umesc
、Takk、Ευχαριστ
)