基于Java實(shí)現(xiàn)QQ登錄注冊功能的示例代碼_第1頁
基于Java實(shí)現(xiàn)QQ登錄注冊功能的示例代碼_第2頁
基于Java實(shí)現(xiàn)QQ登錄注冊功能的示例代碼_第3頁
基于Java實(shí)現(xiàn)QQ登錄注冊功能的示例代碼_第4頁
基于Java實(shí)現(xiàn)QQ登錄注冊功能的示例代碼_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第基于Java實(shí)現(xiàn)QQ登錄注冊功能的示例代碼目錄前言實(shí)現(xiàn)代碼登錄頁面注冊頁面效果展示

前言

本文主要應(yīng)用的技術(shù)有:GUI、JDBC、多線程

實(shí)現(xiàn)的功能具體如下:

1、登錄功能

2、注冊功能

3、是否隱藏密碼的選擇以及實(shí)現(xiàn)功能

4、選擇性別功能

5、密碼與確認(rèn)密碼功能

6、登錄頁面實(shí)時展示當(dāng)前的時間

7、當(dāng)?shù)卿洉r用戶名與密碼在數(shù)據(jù)庫中沒有相匹配的數(shù)據(jù),則會跳轉(zhuǎn)到注冊頁面上去。

8、同樣,注冊完畢后,數(shù)據(jù)會運(yùn)用JDBC將數(shù)據(jù)寫入數(shù)據(jù)庫中,然后跳轉(zhuǎn)回登錄頁面。

實(shí)現(xiàn)代碼

登錄頁面

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.*;

importjava.time.LocalTime;

publicclassJDBC_登錄功能{

publicstaticvoidmain(String[]args){

guitext3gt=newguitext3();

newThread(newtime1(gt.time)).start();//啟動線程

classguitext3{

JFramejf;

JLabell1,l2,time;

JTextFieldf1;

JPasswordFieldf2;

JButtonjb1,jb2;

JCheckBoxjc;

publicguitext3(){

jf=newJFrame("QQ登錄窗口");

jf.setSize(320,250);

jf.setLocation(700,300);//設(shè)置窗口每次啟動都顯示在屏幕正中央

jf.setLayout(null);

Fontfont=newFont("仿宋",Font.BOLD,20);//設(shè)置統(tǒng)一的字體,讓代碼更加整潔美觀

l1=newJLabel("用戶名:");

l1.setBounds(10,10,100,40);

l1.setFont(font);

f1=newJTextField(null,20);

f1.setBounds(90,15,180,30);

f1.setFont(font);

l2=newJLabel("密碼:");

l2.setBounds(8,50,100,40);

l2.setFont(font);

f2=newJPasswordField(null,20);

f2.setBounds(90,55,180,30);

f2.setEchoChar('*');//設(shè)置密碼的外顯為*

f2.setFont(font);

jc=newJCheckBox("顯示密碼");

jc.setBounds(230,130,80,40);

jc.addItemListener(newItemListener(){

publicvoiditemStateChanged(ItemEvente){

if(e.getStateChange()==ItemEvent.SELECTED){//被選中

f2.setEchoChar((char)0);

}else{

f2.setEchoChar('*');

ActionListenerlistener=newAbstractAction(){

@Override

publicvoidactionPerformed(ActionEvente){

jc.addActionListener(listener);

jb1=newJButton("登錄");

jb1.setBounds(30,100,80,40);

time=newJLabel();

time.setBounds(30,150,140,40);

time.setFont(font);

//匿名內(nèi)部類

jb1.addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

Statementst=null;

Connectioncon=null;

ResultSetrs=null;

try{

//注冊驅(qū)動

Class.forName("com.mysql.cj.jdbc.Driver");

//這里的3306/后跟的是數(shù)據(jù)庫名

//獲取數(shù)據(jù)庫連接

Stringurl="jdbc:mysql://localhost:3306/studentsserverTimezone=GMT%2B8";

//通過DriverManager完成注冊

con=DriverManager.getConnection(url,"root","123");//你自己的數(shù)據(jù)庫用戶名和密碼

//執(zhí)行SQL語句

Stringsql="select*fromstudent";//from后跟表名

st=con.createStatement();

rs=st.executeQuery(sql);

booleanflag=false;

while(rs.next()){

//如果輸入的用戶名和密碼與數(shù)據(jù)庫中的用戶和對應(yīng)的密碼相同,則彈出“登錄成功!”的窗口

if(f1.getText().equals(rs.getString(1))f2.getText().equals(rs.getString(2))){

JOptionPane.showMessageDialog(null,"登錄成功!");

flag=true;//登陸成功后將標(biāo)記改為true方便確認(rèn)

break;

if(flag==false){//如果標(biāo)記為false,則表示用戶名和密碼在數(shù)據(jù)庫中未找到,彈出“登錄失??!請注冊賬戶!”的窗口

JOptionPane.showMessageDialog(null,"登錄失?。≌堊再~戶!");

f1.setText(null);//清空用戶欄

f2.setText(null);//清空密碼欄

//這個賬號不存在,需要注冊,跳轉(zhuǎn)到注冊窗口

guitext4gt=newguitext4();

jf.dispose();//關(guān)閉窗體,釋放所有資源

}catch(ClassNotFoundExceptionex){

ex.printStackTrace();

}catch(SQLExceptionex){

ex.printStackTrace();

jb1.setFont(font);

jb2=newJButton("退出");

jb2.setBounds(150,100,80,40);

//匿名內(nèi)部類

jb2.addMouseListener(newMouseAdapter(){

//重寫鼠標(biāo)點(diǎn)擊事件

publicvoidmouseClicked(MouseEvente){//如果點(diǎn)擊了退出窗口,則彈出“退出成功!”的窗口

JOptionPane.showMessageDialog(null,"退出成功!");

//系統(tǒng)退出

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);//讓組件顯示

//寫一個時間線程類

classtime1implementsRunnable{

JLabeltime;//方便傳參

publictime1(JLabeltime){

this.time=time;

publicvoidrun(){

while(true){

try{

Thread.sleep(1000);//休眠1秒

LocalTimetime=LocalTime.now();//獲取當(dāng)前時間

this.time.setText(time.toString());//設(shè)置JLabel文本

//SimpleDateFormatt=newSimpleDateFormat("HH:mm:ss");//格式化時間,把時間格式化為時:分:秒

//this.time.setText(t.format(time));//給標(biāo)簽添加內(nèi)容,即時間

}catch(InterruptedExceptione){

e.printStackTrace();

}

注冊頁面

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.*;

publicclassJDBC_注冊功能{

publicstaticvoidmain(String[]args){

guitext4gt=newguitext4();

classguitext4{

JFramejf;

//JPaneljp;

JLabell1,l2,l3;

JTextFieldf1;

JPasswordFieldf2,f3;

JButtonjb1,jb2;

JRadioButtonjr1,jr2;

JCheckBoxjc;

publicguitext4(){

jf=newJFrame("QQ注冊窗口");

jf.setSize(320,280);//設(shè)置窗體大小

jf.setLocation(700,300);//設(shè)置窗口每次啟動都顯示在屏幕正中央

jf.setLayout(null);

//jp=newJPanel();

Fontfont=newFont("仿宋",Font.BOLD,20);//設(shè)置統(tǒng)一的字體,讓代碼更加整潔美觀

l1=newJLabel("用戶名:");

l1.setBounds(10,10,100,40);

l1.setFont(font);

f1=newJTextField(null,20);

f1.setBounds(90,15,180,30);

f1.setFont(font);

l2=newJLabel("密碼:");

l2.setBounds(8,50,100,40);

l2.setFont(font);

f2=newJPasswordField(null,20);

f2.setBounds(90,55,180,30);

f2.setEchoChar('*');//設(shè)置密碼的外顯為*

f2.setFont(font);

l3=newJLabel("確認(rèn)密碼:");

l3.setBounds(8,88,130,40);

l3.setFont(font);

f3=newJPasswordField(null,20);

f3.setBounds(120,95,160,30);

f3.setEchoChar('*');//設(shè)置密碼的外顯為*

jc=newJCheckBox("顯示密碼");//創(chuàng)建一個復(fù)選按鈕

jc.setBounds(230,130,80,40);

jc.addItemListener(newItemListener(){

publicvoiditemStateChanged(ItemEvente){

if(e.getStateChange()==ItemEvent.SELECTED){//被選中

f2.setEchoChar((char)0);//顯示原本的數(shù)據(jù)

f3.setEchoChar((char)0);//顯示原本的數(shù)據(jù)

}else{

f2.setEchoChar('*');//設(shè)置密碼的外顯為*

f3.setEchoChar('*');//設(shè)置密碼的外顯為*

f3.setFont(font);

ButtonGroupgroup=newButtonGroup();

//創(chuàng)建兩個單選按鈕

jr1=newJRadioButton("男");

jr1.setBounds(70,130,80,40);

jr1.setFont(font);

jr2=newJRadioButton("女");

jr2.setBounds(150,130,80,40);

jr2.setFont(font);

//將兩個單選按鈕加入到同一個ButtonGroup組中

group.add(jr1);

group.add(jr2);

//實(shí)現(xiàn)監(jiān)聽接口

ActionListenerlistener=newAbstractAction(){

@Override

//actionPerformed==發(fā)生動作時調(diào)用

publicvoidactionPerformed(ActionEvente){

jr1.addActionListener(listener);

jr2.addActionListener(listener);

jc.addActionListener(listener);

jb1=newJButton("注冊");

jb1.setBounds(50,170,80,40);

//匿名內(nèi)部類

jb1.addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

PreparedStatementps=null;//PreparedStatement==表示預(yù)編譯的SQL語句的對象。

//SQL語句已預(yù)編譯并存儲在PreparedStatement對象中。

Connectioncon=null;//Connection==與特定數(shù)據(jù)庫的連接

try{

//注冊驅(qū)動

Class.forName("com.mysql.cj.jdbc.Driver");

//這里的3306/后跟的是數(shù)據(jù)庫名

//獲取數(shù)據(jù)庫連接

Stringurl="jdbc:mysql://localhost:3306/studentsserverTimezone=GMT%2B8";

//通過DriverManager完成注冊

con=DriverManager.getConnection(url,"root","123");//你自己數(shù)據(jù)庫的用戶名和密碼

//執(zhí)行SQL語句

Stringsql="insertintostudent(username,password,sex)values(,,)";

ps=con.prepareStatement(sql);

if(f1.getText().length()!=0){

//注:這里的所有g(shù)etText()都不能寫成!=null

ps.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()){//如果選擇男或者女,就存入數(shù)據(jù)庫。

if(jr1.isSelected()){//isSelected()==判斷按鈕有沒有被選中

ps.setString(3,jr1.getText());//選中男,則將sex=男添加到數(shù)據(jù)

if(jr2.isSelected()){

ps.setString(3,jr2.getText());//選中女,則將sex=女添加到數(shù)據(jù)

}else{//否則彈出窗口提醒“請選擇性別!”

JOptionPane.showMessageDialog(null,"請選擇性別!");

}catch(ClassNotFoundExceptionex){

ex.printStackTrace();

}catch(SQLExceptionex){

ex.printStackTrace();

if(newString(f2.getPassword()).equals(newString(f3.getPassword()))){//如果密碼與確認(rèn)密碼一致

if(newString(f2.getPassword()).equals(newString(f3.getPassword()))f1.getText().length()!=0f2.getText().length()!=0

(jr1.isSelected()||jr2.isSelected())){//如果密碼與確認(rèn)密碼一致,用戶名和密碼不為空并且選擇了性別,則注冊成功

JOptionPane.showMessageDialog(null,"注冊成功!

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論