日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA实现QQ登录、注册等功能

發布時間:2024/8/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA实现QQ登录、注册等功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要應用的技術有:GUI、JDBC、多線程

?實現的功能具體如下:

1、登錄功能

2、注冊功能

3、是否隱藏密碼的選擇以及實現功能

4、選擇性別功能

5、密碼與確認密碼功能

6、登錄頁面實時展示當前的時間

7、當登錄時用戶名與密碼在數據庫中沒有相匹配的數據,則會跳轉到注冊頁面上去。

8、同樣,注冊完畢后,數據會運用JDBC將數據寫入數據庫中,然后跳轉回登錄頁面。

?登錄頁面:

import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; import java.time.LocalTime;public class JDBC_登錄功能 {public static void main(String[] args) {guitext3 gt=new guitext3();new Thread(new time1(gt.time)).start();//啟動線程} } class guitext3 {JFrame jf;JLabel l1,l2,time;JTextField f1;JPasswordField f2;JButton jb1,jb2;JCheckBox jc;public guitext3() {jf = new JFrame("QQ登錄窗口");jf.setSize(320,250);jf.setLocation(700,300);//設置窗口每次啟動都顯示在屏幕正中央jf.setLayout(null);Font font = new Font("仿宋", Font.BOLD, 20);//設置統一的字體,讓代碼更加整潔美觀l1 = new JLabel("用戶名:");l1.setBounds(10,10,100,40);l1.setFont(font);f1 = new JTextField(null,20);f1.setBounds(90,15,180,30);f1.setFont(font);l2 = new JLabel("密 碼:");l2.setBounds(8,50,100,40);l2.setFont(font);f2=new JPasswordField(null,20);f2.setBounds(90,55,180,30);f2.setEchoChar('*');//設置密碼的外顯為*f2.setFont(font);jc=new JCheckBox("顯示密碼");jc.setBounds(230,130,80,40);jc.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {if (e.getStateChange() == ItemEvent.SELECTED) {//被選中f2.setEchoChar((char) 0);} else {f2.setEchoChar('*');}}});ActionListener listener=new AbstractAction() {@Overridepublic void actionPerformed(ActionEvent e) {}};jc.addActionListener(listener);jb1 = new JButton("登錄");jb1.setBounds(30,100,80,40);time=new JLabel();time.setBounds(30,150,140,40);time.setFont(font);//匿名內部類jb1.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {Statement st=null;Connection con=null;ResultSet rs=null;try {//注冊驅動Class.forName("com.mysql.cj.jdbc.Driver");//這里的3306/后跟的是數據庫名//獲取數據庫連接String url="jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";//通過DriverManager完成注冊con= DriverManager.getConnection(url,"root","123");//你自己的數據庫用戶名和密碼//執行SQL語句String sql="select * from student";//from 后跟表名st=con.createStatement();rs=st.executeQuery(sql);boolean flag=false;while(rs.next()){//如果輸入的用戶名和密碼與數據庫中的用戶和對應的密碼相同,則彈出“登錄成功!”的窗口if(f1.getText().equals(rs.getString(1))&&f2.getText().equals(rs.getString(2))){JOptionPane.showMessageDialog(null, "登錄成功!");flag=true;//登陸成功后將標記改為true方便確認break;}}if(flag==false){//如果標記為false,則表示用戶名和密碼在數據庫中未找到,彈出“登錄失敗!請注冊賬戶!”的窗口JOptionPane.showMessageDialog(null, "登錄失敗!請注冊賬戶!");f1.setText(null);//清空用戶欄f2.setText(null);//清空密碼欄//這個賬號不存在,需要注冊,跳轉到注冊窗口guitext4 gt=new guitext4();jf.dispose();//關閉窗體,釋放所有資源}} catch (ClassNotFoundException ex) {ex.printStackTrace();} catch (SQLException ex) {ex.printStackTrace();}}});jb1.setFont(font);jb2 = new JButton("退出");jb2.setBounds(150,100,80,40);//匿名內部類jb2.addMouseListener(new MouseAdapter() {//重寫鼠標點擊事件public void mouseClicked(MouseEvent e) {//如果點擊了退出窗口,則彈出“退出成功!”的窗口JOptionPane.showMessageDialog(null, "退出成功!");//系統退出System.exit(0);}});jb2.setFont(font);//將這些按鈕和文本等加入到窗體中jf.add(l1);jf.add(f1);jf.add(l2);jf.add(f2);jf.add(jb1);jf.add(jb2);jf.add(time);jf.add(jc);jf.setVisible(true);//讓組件顯示} } //寫一個時間線程類 class time1 implements Runnable{JLabel time;//方便傳參public time1(JLabel time) {this.time = time;}public void run(){while (true) {try {Thread.sleep(1000);//休眠1秒LocalTime time=LocalTime.now();//獲取當前時間this.time.setText(time.toString());//設置JLabel文本//SimpleDateFormat t = new SimpleDateFormat ("HH:mm:ss");//格式化時間,把時間格式化為時:分:秒// this.time.setText(t.format(time));//給標簽添加內容,即時間} catch (InterruptedException e) {e.printStackTrace();}}} }

?注冊頁面:

import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*;public class JDBC_注冊功能 {public static void main(String[] args) {guitext4 gt=new guitext4();} } class guitext4{JFrame jf;// JPanel jp;JLabel l1,l2,l3;JTextField f1;JPasswordField f2,f3;JButton jb1,jb2;JRadioButton jr1,jr2;JCheckBox jc;public guitext4() {jf = new JFrame("QQ注冊窗口");jf.setSize(320,280);//設置窗體大小jf.setLocation(700,300);//設置窗口每次啟動都顯示在屏幕正中央jf.setLayout(null);// jp = new JPanel();Font font = new Font("仿宋", Font.BOLD, 20);//設置統一的字體,讓代碼更加整潔美觀l1 = new JLabel("用戶名:");l1.setBounds(10,10,100,40);l1.setFont(font);f1 = new JTextField(null,20);f1.setBounds(90,15,180,30);f1.setFont(font);l2 = new JLabel("密 碼:");l2.setBounds(8, 50, 100, 40);l2.setFont(font);f2 = new JPasswordField(null, 20);f2.setBounds(90, 55, 180, 30);f2.setEchoChar('*');//設置密碼的外顯為*f2.setFont(font);l3 = new JLabel("確認密碼:");l3.setBounds(8, 88, 130, 40);l3.setFont(font);f3 = new JPasswordField(null, 20);f3.setBounds(120, 95, 160, 30);f3.setEchoChar('*');//設置密碼的外顯為*jc=new JCheckBox("顯示密碼");//創建一個復選按鈕jc.setBounds(230,130,80,40);jc.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {if (e.getStateChange() == ItemEvent.SELECTED) {//被選中f2.setEchoChar((char) 0);//顯示原本的數據f3.setEchoChar((char)0);//顯示原本的數據} else {f2.setEchoChar('*');//設置密碼的外顯為*f3.setEchoChar('*');//設置密碼的外顯為*}}});f3.setFont(font);ButtonGroup group = new ButtonGroup();//創建兩個單選按鈕jr1 = new JRadioButton("男");jr1.setBounds(70, 130, 80, 40);jr1.setFont(font);jr2 = new JRadioButton("女");jr2.setBounds(150, 130, 80, 40);jr2.setFont(font);//將兩個單選按鈕加入到同一個ButtonGroup組中group.add(jr1);group.add(jr2);//實現監聽接口ActionListener listener = new AbstractAction() {@Override//actionPerformed==>發生動作時調用public void actionPerformed(ActionEvent e) {}};jr1.addActionListener(listener);jr2.addActionListener(listener);jc.addActionListener(listener);jb1 = new JButton("注冊");jb1.setBounds(50, 170, 80, 40);//匿名內部類jb1.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {PreparedStatement ps = null;//PreparedStatement==>表示預編譯的SQL語句的對象。// SQL語句已預編譯并存儲在PreparedStatement對象中。Connection con = null;//Connection==>與特定數據庫的連接try {//注冊驅動Class.forName("com.mysql.cj.jdbc.Driver");//這里的3306/后跟的是數據庫名//獲取數據庫連接String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";//通過DriverManager完成注冊con = DriverManager.getConnection(url, "root", "123");//你自己數據庫的用戶名和密碼//執行SQL語句String sql = "insert into student(username,password,sex) values(?,?,?)";ps = con.prepareStatement(sql);if(f1.getText().length()!=0){//注:這里的所有getText()都不能寫成!=nullps.setString(1, f1.getText());}else{JOptionPane.showMessageDialog(null, "姓名不能為空!");//彈出窗口}if(f2.getText().length()!=0) {ps.setString(2, f2.getText());}else{JOptionPane.showMessageDialog(null, "密碼不能為空!");}if(jr1.isSelected()||jr2.isSelected()) {//如果選擇男或者女,就存入數據庫。if (jr1.isSelected()) {//isSelected()==>判斷按鈕有沒有被選中ps.setString(3, jr1.getText());//選中男,則將sex=男添加到數據}if (jr2.isSelected()) {ps.setString(3, jr2.getText());//選中女,則將sex=女添加到數據}}else{//否則彈出窗口提醒“請選擇性別!”JOptionPane.showMessageDialog(null, "請選擇性別!");}} catch (ClassNotFoundException ex) {ex.printStackTrace();} catch (SQLException ex) {ex.printStackTrace();}if (new String(f2.getPassword()).equals(new String(f3.getPassword()))) {//如果密碼與確認密碼一致if (new String(f2.getPassword()).equals(new String(f3.getPassword()))&&f1.getText().length()!=0&&f2.getText().length()!=0&&(jr1.isSelected()||jr2.isSelected())) {//如果密碼與確認密碼一致,用戶名和密碼不為空并且選擇了性別,則注冊成功JOptionPane.showMessageDialog(null, "注冊成功!");//注冊成功后跳轉到登錄窗口guitext3 gt = new guitext3();jf.dispose();//關閉窗體,釋放所有資源try {int i = ps.executeUpdate();//將注冊的賬戶存儲到數據庫中} catch (SQLException ex) {ex.printStackTrace();}}} else {JOptionPane.showMessageDialog(null, "注冊失敗!密碼與確認密碼不一致!");f2.setText(null);//清空密碼f3.setText(null);//清空確認密碼}}});jb1.setFont(font);jb2 = new JButton("退出");jb2.setBounds(170, 170, 80, 40);//匿名內部類jb2.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {JOptionPane.showMessageDialog(null, "退出成功!");//系統退出System.exit(0);}});jb2.setFont(font);jf.add(l1);jf.add(f1);jf.add(l2);jf.add(f2);jf.add(l3);jf.add(f3);jf.add(jr1);jf.add(jr2);jf.add(jc);jf.add(jb1);jf.add(jb2);// jf.add(jp);jf.setVisible(true);}}

?登錄頁面運行結果:

?

?注冊頁面運行結果:

?

?是否隱藏密碼效果圖:

?

?

總結

以上是生活随笔為你收集整理的JAVA实现QQ登录、注册等功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。