栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现仿QQ登陆、好友界面(可连接数据库)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现仿QQ登陆、好友界面(可连接数据库)

文章目录
    • 一、项目结构
    • 二、项目功能
    • 三、制作界面
      • 1、QQ登陆界面
      • 2、好友界面
      • 3、数据库连接部分
      • 4、数据库代码
    • 四、项目实现结果

一、项目结构

二、项目功能

1、登录功能
2、连接数据库
3、其他的我还没有加,等我学到了那些部分我在加上去!!

三、制作界面

在DIYQQ登陆界面时,我们需要将QQ登陆界面大致分为不同的模块,然后根据不同的模板,用不同的容器分割开,我们可以在容器里面添加不同的组件。

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 
{
//创建组件:
	JFrame f=new JFrame("QQ登陆界面");//创建窗口
	String [] a= {"123456","456789","789123"};//用数组来存放QQ号和密码
	JComboBox c=new JComboBox(a);
	JLabel l1=new JLabel("注册账号");
	JLabel l2=new JLabel("找回密码");
	JCheckBox cb1=new JCheckBox("记住密码",false);
	JCheckBox cb2=new JCheckBox("自动登录",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);//设置窗口尺寸
        f.setLocation(497, 242);//设置窗口位置
        f.setResizable(false);//禁止改变窗口大小
        //设置顶部图片位置
        Box box=Box.createVerticalBox();
        //设置图片尺寸
        i2.setImage(i2.getImage().getScaledInstance(400, 100, Image.SCALE_AREA_AVERAGING));
        box.add(l4);
        f.add(box,BorderLayout.NORTH);
        //设置底部复选框
        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);
        //设置密码框、账号输入框等
        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);
        //设置注册账号和找回密码:
        Box br=Box.createVerticalBox();
        l1.setBounds(10,13,60,30);
        l2.setBounds(10,43,60,30);
        br.add(l1);
        br.add(l2);
        //设置头像、背景:
        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);
        //设置登陆按钮、记住密码等
        Box blast=Box.createVerticalBox();
        blast.add(bs);
        blast.add(button);
        f.add(blast,BorderLayout.SOUTH);
        My m1=new My();
        p.addActionListener(m1);//设置监听
        button.addActionListener(m1);//在登陆按钮上设置监听
		f.pack();//让软件自己安排合适的尺寸
		f.setVisible(true);//设置可见
	}
	class My implements ActionListener
	{

		@Override
		public void actionPerformed(ActionEvent arg0)//此处为动作监听事件
		{
			String o1=(String)c.getSelectedItem();//获取账号
			String o2=new String(p.getPassword());//将字符数组转化为字符串
			Test2 log =new 	Test2();//创建一个新对象
			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, "你输入的账户名或密码不正确,请重新输入");//弹出错误信息
				System.out.println("你输入的账号不正确");
			}		
		}
		
	}
	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();//设置文本框
	ImageIcon i6=new ImageIcon("C:\images\2.jpg");
	JLabel l6=new JLabel(i6);
	JLabel ll1=new JLabel("网名:.");
	JLabel ll2=new JLabel("个性签名");
	TextField tf2=new TextField("搜索");
	Button bu1=new Button("消息");
	Button bu2=new Button("联系人");
	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页游");
	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("我的设备 2/2");
		c4.add("特别关心 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("应用管理器");
		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、数据库连接部分

数据库连接需要导入一个包,这里发不出来,需要的可以后台戳我。在连接数据库的时候,需要登录名、密码、数据库名,这个需要我们事先设置。

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");//数据库名称test,用户名:sa,密码:123456
	String 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、数据库代码

在连接数据库之前。需要新建一个登录名(如果你之前有就可以不用建)---->>新建数据库—>>新建查询—>>设置ID为主键,qq号,和qq密码

use test
 go 
create table  tb_qquser1
(
id int identity(1,1) primary key(id),//设置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');

四、项目实现结果


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号