您好,登錄后才能下訂單哦!
這篇文章主要講解了java模仿實現(xiàn)QQ登錄界面的方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
這是我模仿QQ2015版界面,實現(xiàn)的基本功能有登陸驗證,重置等,當然直接復制代碼運行是不一樣的,還要注意自己插入自己的圖片。
結(jié)果截圖如下所示:
代碼:
import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class QQ2015 extends JFrame implements ActionListener { JFrame loginFrame; // 復選框 private JCheckBox jc1; private JCheckBox jc2; // 用戶名 private JTextField username; // 密碼 private JPasswordField password; // 錯誤消息提示 JLabel mes; // 創(chuàng)建一個HashMap,用以保存帳號和密碼 HashMap<String, String> users = new HashMap<String, String>(); // 主函數(shù)入口 public static void main(String[] args) { QQ2015 qq2015 = new QQ2015(); qq2015.showLoginFrame(); } // 構(gòu)造方法 public QQ2015() { users.put("123456", "123456"); users.put("302795036", "123456"); users.put("123", "123456"); } // 創(chuàng)建登陸界面方法 public void showLoginFrame() { loginFrame = new JFrame(); // 設(shè)置大小,位置,標題 loginFrame.setSize(410, 380); loginFrame.setTitle("修衡-QQ2015"); loginFrame.setLocationRelativeTo(null); // 創(chuàng)建邊界布局對象 loginFrame.setLayout(new BorderLayout()); JPanel panelTop = new JPanel(new FlowLayout()); JPanel panelCenter = new JPanel(new GridLayout(3, 1)); JPanel panelFooter = new JPanel(new GridLayout(2, 1)); JPanel panelFooter1 = new JPanel(new FlowLayout()); JPanel panelFooter2 = new JPanel(new FlowLayout()); panelFooter.add(panelFooter1); panelFooter.add(panelFooter2); JPanel panelLeft = new JPanel(new GridLayout(1, 1)); JPanel panelRight = new JPanel(new GridLayout(3, 1)); loginFrame.add("North", panelTop); loginFrame.add("Center", panelCenter); loginFrame.add("South", panelFooter); loginFrame.add("West", panelLeft); loginFrame.add("East", panelRight); (new BorderLayout()).setHgap(50); // 插入圖片 Image im = new ImageIcon("imgs/qq.png").getImage(); im = im.getScaledInstance(-1, 90, DO_NOTHING_ON_CLOSE); loginFrame.setIconImage(im); JLabel tl = new JLabel(new ImageIcon("imgs/top.png")); panelTop.add(tl); // 可以設(shè)置panelTop背景顏色 // panelTop.setBackground(Color.YELLOW); JLabel ll = new JLabel(new ImageIcon("imgs/left.png")); panelLeft.add(ll); // 創(chuàng)建注冊賬號和找回密碼標簽 JLabel reg_name = new JLabel(" 注冊賬號 "); JLabel find_password = new JLabel(" 找回密碼 "); reg_name.setForeground(Color.BLUE); find_password.setForeground(Color.BLUE); // 創(chuàng)建帳號和密碼輸入框 username = new JTextField(18); password = new JPasswordField(18); // 復選框 jc1 = new JCheckBox("記住密碼 "); jc2 = new JCheckBox("自動登錄"); JLabel nul1 = new JLabel(" "); JLabel nul2 = new JLabel(" "); // 錯誤消息提示標簽 mes = new JLabel(); mes.setForeground(Color.RED); // 部分布局 JPanel pancener = new JPanel(new FlowLayout()); pancener.add(jc1); pancener.add(nul1); pancener.add(jc2); // 創(chuàng)建登陸,重置按鈕 JButton button_reset = new JButton(" 重 置 "); JButton button_login = new JButton(" 登 陸 "); button_login.setBackground(Color.pink); // 窗體大小不能改變 loginFrame.setResizable(false); // 設(shè)置窗體可見 loginFrame.setVisible(true); // 將文本輸入框,按鈕,事件監(jiān)聽對象等添加 panelCenter.add(username); panelCenter.add(password); panelCenter.add(pancener); panelRight.add(reg_name); panelRight.add(find_password); panelFooter1.add(button_reset); panelFooter1.add(nul2); panelFooter1.add(button_login); panelFooter2.add(mes); button_reset.addActionListener(this); button_login.addActionListener(this); // reg_name.addActionListener(this); } public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); boolean f = false; String pw = null; // 重置事件 if (str.equals(" 重 置 ")) { username.setText(""); password.setText(""); mes.setText(""); } // 登錄事件 if (str.equals(" 登 陸 ")) { mes.setText(""); Set<Map.Entry<String, String>> set = users.entrySet(); for (Map.Entry<String, String> me : set) { if (username.getText().trim().equals(me.getKey())) { f = true; pw = me.getValue(); break; } } if (f) { // if (password.getPassword().equals(pw)) { if (password.getText().trim().equals(pw)) { JOptionPane.showMessageDialog(null, "登錄成功"); } else { mes.setText("溫馨提示:密碼為空或錯誤,請重新輸入!"); } } else { mes.setText("溫馨提示:帳號為空或錯誤,請重新輸入!"); } } } }
看完上述內(nèi)容,是不是對java模仿實現(xiàn)QQ登錄界面的方法有進一步的了解,如果還想學習更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。