Java实现仿QQ登陆、好友界面(可连接数据库)
生活随笔
收集整理的這篇文章主要介紹了
Java实现仿QQ登陆、好友界面(可连接数据库)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 一、項(xiàng)目結(jié)構(gòu)
- 二、項(xiàng)目功能
- 三、制作界面
- 1、QQ登陸界面
- 2、好友界面
- 3、數(shù)據(jù)庫(kù)連接部分
- 4、數(shù)據(jù)庫(kù)代碼
- 四、項(xiàng)目實(shí)現(xiàn)結(jié)果
一、項(xiàng)目結(jié)構(gòu)
二、項(xiàng)目功能
1、登錄功能
2、連接數(shù)據(jù)庫(kù)
3、其他的我還沒有加,等我學(xué)到了那些部分我在加上去!!
三、制作界面
在DIYQQ登陸界面時(shí),我們需要將QQ登陸界面大致分為不同的模塊,然后根據(jù)不同的模板,用不同的容器分割開,我們可以在容器里面添加不同的組件。
1、QQ登陸界面
package GUI;import java.awt.BorderLayout; import java.awt.Button; import java.awt.Choice; import java.awt.Dimension; import java.awt.Image; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException;import javax.swing.Box; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; public class Test1 { //創(chuàng)建組件:JFrame f=new JFrame("QQ登陸界面");//創(chuàng)建窗口String [] a= {"123456","456789","789123"};//用數(shù)組來存放QQ號(hào)和密碼JComboBox <String>c=new JComboBox<String>(a);JLabel l1=new JLabel("注冊(cè)賬號(hào)");JLabel l2=new JLabel("找回密碼");JCheckBox cb1=new JCheckBox("記住密碼",false);JCheckBox cb2=new JCheckBox("自動(dòng)登錄",false);JPasswordField p=new JPasswordField();//密碼框組件ImageIcon i1=new ImageIcon("C:\\images\\1.jpg");//QQ上方背景ImageIcon i2=new ImageIcon("C:\\images\\2.png");//QQ頭像JLabel l3=new JLabel(i1);JLabel l4=new JLabel(i2);JButton button=new JButton("登陸");//將界面組裝起來public void init() {f.setSize(426, 300);//設(shè)置窗口尺寸f.setLocation(497, 242);//設(shè)置窗口位置f.setResizable(false);//禁止改變窗口大小//設(shè)置頂部圖片位置Box box=Box.createVerticalBox();//設(shè)置圖片尺寸i2.setImage(i2.getImage().getScaledInstance(400, 100, Image.SCALE_AREA_AVERAGING));box.add(l4);f.add(box,BorderLayout.NORTH);//設(shè)置底部復(fù)選框Box bs=Box.createHorizontalBox();cb1.setBounds(8,13,60,10);cb2.setBounds(120,13,60,10);bs.add(cb1);bs.add(cb2);f.add(bs);//設(shè)置密碼框、賬號(hào)輸入框等Box bc=Box.createVerticalBox();bc.setPreferredSize(new Dimension(100,10));c.setBounds(8,15,175,30);p.setBounds(8,50,175,30);bc.add(c);bc.add(p);bc.add(bs);//設(shè)置注冊(cè)賬號(hào)和找回密碼:Box br=Box.createVerticalBox();l1.setBounds(10,13,60,30);l2.setBounds(10,43,60,30);br.add(l1);br.add(l2);//設(shè)置頭像、背景:i1.setImage(i1.getImage().getScaledInstance(60, 50, Image.SCALE_AREA_AVERAGING));Box bx=Box.createHorizontalBox();bx.add(l3);bx.add(bc);bx.add(br);bx.add(button);f.add(bx);//設(shè)置登陸按鈕、記住密碼等Box blast=Box.createVerticalBox();blast.add(bs);blast.add(button);f.add(blast,BorderLayout.SOUTH);My m1=new My();p.addActionListener(m1);//設(shè)置監(jiān)聽button.addActionListener(m1);//在登陸按鈕上設(shè)置監(jiān)聽f.pack();//讓軟件自己安排合適的尺寸f.setVisible(true);//設(shè)置可見}class My implements ActionListener{@Overridepublic void actionPerformed(ActionEvent arg0)//此處為動(dòng)作監(jiān)聽事件{String o1=(String)c.getSelectedItem();//獲取賬號(hào)String o2=new String(p.getPassword());//將字符數(shù)組轉(zhuǎn)化為字符串Test2 log =new Test2();//創(chuàng)建一個(gè)新對(duì)象Boolean booleans=false;//try{booleans=log.findUser(o1, o2);}catch (SQLException ex){ex.printStackTrace();}if(booleans){JOptionPane.showMessageDialog(null, "登錄成功");//彈出正確信息System.out.println("登錄成功");f.dispose();Qqdenglu fs=new Qqdenglu();fs.login();System.out.println("登錄成功");}else {JOptionPane.showMessageDialog(null, "你輸入的賬戶名或密碼不正確,請(qǐng)重新輸入");//彈出錯(cuò)誤信息System.out.println("你輸入的賬號(hào)不正確");} }}public static void main(String [] args){new Test1().init();} }2、好友界面
同樣的,我們可以參考之前制作登錄界面的方式去制作好友列表的界面,使用方法和登錄界面是一樣的。
package GUI;import java.awt.*; import javax.swing.*;public class Qqdenglu extends Test1 {JFrame f=new JFrame("QQ");TextArea ta=new TextArea();//設(shè)置文本框ImageIcon i6=new ImageIcon("C:\\images\\2.jpg");JLabel l6=new JLabel(i6);JLabel ll1=new JLabel("網(wǎng)名:.");JLabel ll2=new JLabel("個(gè)性簽名");TextField tf2=new TextField("搜索");Button bu1=new Button("消息");Button bu2=new Button("聯(lián)系人");Button bu3=new Button("好友");Button bu4=new Button("群聊");Button bu5=new Button("+");Button bu6=new Button("頻道");Button bu7=new Button("加好友");Button bu8=new Button("騰訊文檔");Button bu9=new Button("QQ頁(yè)游");Button bu10=new Button("QQ暢玩");Button bu11=new Button("微云");Choice c1=new Choice();Choice c2=new Choice();Choice c3=new Choice();Choice c4=new Choice();Choice c5=new Choice();Choice c6=new Choice();Choice c7=new Choice();Choice c8=new Choice();public void login() {c1.add("空間");c2.add("新朋友");c3.add("我的設(shè)備 2/2");c4.add("特別關(guān)心 7/7");c5.add(" 8/11");c6.add(" 120/137");Box b1=Box.createVerticalBox();b1.add(ll1);b1.add(ll2);Box b2=Box.createHorizontalBox();i6.setImage(i6.getImage().getScaledInstance(50, 50, Image.SCALE_SMOOTH));b2.add(l6,BorderLayout.EAST);b2.add(b1,BorderLayout.EAST);Box b3=Box.createVerticalBox();b3.add(b2);b3.add(tf2);f.add(b3);Box b4=Box.createHorizontalBox();b4.add(bu1);b4.add(bu2);b4.add(bu6);b4.add(c1);Box b5=Box.createVerticalBox();b5.add(b3);b5.add(b4);Box b7=Box.createVerticalBox();b7.add(c2);b7.add(c3);b7.add(c4);b7.add(c5);b7.add(c6);Box b6=Box.createVerticalBox();b6.add(b5);b6.add(b7);Box b8=Box.createHorizontalBox();c7.add("主菜單");b8.add(c7);b8.add(bu7);b8.add(bu8);b8.add(bu9);b8.add(bu10);b8.add(bu11);c8.add("應(yīng)用管理器");b8.add(c8);Box b9=Box.createVerticalBox();b9.add(b6);b9.add(b8);f.add(b9);f.pack();f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String[] args){new Qqdenglu().login();} }3、數(shù)據(jù)庫(kù)連接部分
數(shù)據(jù)庫(kù)連接需要導(dǎo)入一個(gè)包,這里發(fā)不出來,需要的可以后臺(tái)戳我。在連接數(shù)據(jù)庫(kù)的時(shí)候,需要登錄名、密碼、數(shù)據(jù)庫(kù)名,這個(gè)需要我們事先設(shè)置。
package GUI;import java.sql.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;public class Test2 {PreparedStatement prestmt=null;Connection c=null;ResultSet rs =null; public Boolean findUser(String qqnumber,String password)throws SQLException {try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");c=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=test","sa","123456");//數(shù)據(jù)庫(kù)名稱test,用戶名:sa,密碼:123456String sql="select * from tb_qquser1"+" where qqnumber=? and password=?";prestmt=c.prepareStatement(sql);prestmt.setString(1, qqnumber);prestmt.setString(2, password);rs=prestmt.executeQuery();if(rs.next()){return true;//返回Boolean booleans=false;}}catch(Exception e){e.printStackTrace(); }finally{if(rs!=null) {rs.close();}if(prestmt!=null) {prestmt.close();}if(c!=null) {c.close();} }return false; } public static void main(String[] args) throws SQLException {Test2 t2=new Test2();System.out.println(t2.findUser("123456","123456")); } }4、數(shù)據(jù)庫(kù)代碼
在連接數(shù)據(jù)庫(kù)之前。需要新建一個(gè)登錄名(如果你之前有就可以不用建)---->>新建數(shù)據(jù)庫(kù)—>>新建查詢—>>設(shè)置ID為主鍵,qq號(hào),和qq密碼
use testgo create table tb_qquser1 ( id int identity(1,1) primary key(id),//設(shè)置ID為主鍵 qqnumber varchar(50), password varchar(50) ); insert into tb_qquser1(qqnumber,password) values('123456','123456'); insert into tb_qquser1(qqnumber,password) values('456789','456789'); insert into tb_qquser1 (qqnumber,password) values('789123','789123');四、項(xiàng)目實(shí)現(xiàn)結(jié)果
總結(jié)
以上是生活随笔為你收集整理的Java实现仿QQ登陆、好友界面(可连接数据库)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于SSM的小区物业管理系统(附源码+论
- 下一篇: linux vi 文件查找,linux