2015届本科毕业论文(设计)
基于Java技术的 即时聊天系统实现
代码:姓 名:____ XXXX _______
系 别:计算机与信息技术学院
专 业: 网络安全 _
学 号:____XXXXXXXX_ ____
指导教师:____ XXXXX ______
2015年 5月8日
目 录
1 绪论 .............................................................................. 1
背景 ........................................................................... 1 论文研究内容与方法 ............................................................. 1 2 开发环境介绍 ...................................................................... 1
Java技术简介 ................................................................... 1 开发工具简介 ................................................................... 1 3 需求分析 .......................................................................... 1
功能性需求分析 ................................................................. 2 非功能性需求分析 ............................................................... 2 4 总体设计 .......................................................................... 2
功能模块设计 ................................................................... 2 数据库设计 ..................................................................... 3 5 系统详细设计与实现 ................................................................ 5
界面设计 ....................................................................... 5
登录界面 ................................................................... 5 注册界面 ................................................................... 5 修改密码界面 ............................................................... 6 好友列表界面 ............................................................... 7 聊天窗口界面 ............................................................... 8 服务器端界面 ............................................................... 9 功能实现 ....................................................................... 9
实现登录 ................................................................... 9 实现注册 ................................................................... 9 实现修改密码 .............................................................. 10 添加、删除好友 ............................................................ 10 移动黑名单 ................................................................ 11 多对多聊天 ................................................................ 12 显示表情 .................................................................. 12 文件的发送 ................................................................ 13 历史记录 .................................................................. 13
6 测试阶段 ......................................................................... 14 总 结 .............................................................................. 14 参考文献 ........................................................................... 15 致 谢 .............................................................................. 15
基于Java技术的即时聊天系统实现
摘要
基于Java技术的即时聊天系统采用C/S架构,MyEclipse集成开发环境和MySQL数据库为开发环境,在Window7系统下使用Java程序设计语言开发的一款聊天系统。系统主要分为:用户注册、用户登录、修改密码、好友列表、聊天等五大模块;在功能上用户能够进行添加删除好友,移动黑名单,一对一、多对多的聊天,发送表情,传送文件等操作。
关键词
Java;即时聊天系统;C/S;MyEclipse;MySQL;
Implementation of Instant Messaging System Based on Java Technology
Abstract
Java technology and C/S architecture is used in the instant messaging system, the MyEclipse integrated development environment and MySQL database as a development
environment based on Java programming language, the use of Window7 system in the development of a chat system. The system is mainly divided into: user
registration,user login, change password, list of friends, chat and other five modules; in function, users can add and delete friends, mobile blacklist, one to one, many to many chat, send expression, transfer files and other operations.
Keywords
Java; instant messaging system; C/S ; MyEclipse; MySQL;
1 绪论
背景
随着互联网的蓬勃发展,即时聊天已经成为如今最流行的通讯方式,尤其在移动互联网方面,即时聊天已经与我们的生活息息相关。同时,Java是一种非常流行的程序设计语言,可以用来开发面向对象、跨平台的应用程序。
即时聊天已经与我们的生活不可分割,利用自己学习到的Java语言开发一款自己的聊天软件是一个非常不错的选择,既能够检验自己对Java技术的掌握,同时又能够开发一款自己的聊天软件。
论文研究内容与方法
基于Java技术的聊天系统主要是探索如何在Java技术下能够实现即时聊天的一些基本功能:用户注册,用户登录,添加删除好友,移动黑名单,实现一对一、多对多的聊天,能
[1]
够发送表情,传送图片、视频等。
论文的设计主要采用了两种研究方法:一是文献资料研究的方法。在研究聊天系统现实中,本人通过图书馆、电子图书馆学习了Java语言中的一些编程技术;二是理论与实际相结合,既然掌握了技术与方法,那么就应该快速的进行实践,在软件的设计过程中,才能够理解到理论与现实的差距,遇到棘手问题,应该快速查阅资料快速攻破。
2 开发环境介绍
本聊天系统是基于Java技术的,采用C/S结构,采用MVC的开发框架,利用MyEclipse、MySQL数据库作为开发工具。
Java技术简介
Java是一种程序设计语言, 主要应用于Android 应用、JSP网站、PC和游戏控制台等领域。Java语言能够使开发者在设计程序的时候能够根据自己的情况自定义数据类型和关联操作,对于程序中的数据结构的改变或者代码的改变进行相应的操作;Java语言编写的
[1]
程序编译后无需再次编译,可以在任何硬件设备下运行。
本次课题中主要用到Swing工具包中JFrame类,采用Java和Windows混合界面风格,作为开发程序的外观风格来设计聊天系统界面;其次,使用Java Socket编程技术实现系统
[2]
之间的网络通信。
开发工具简介
MyEclipse是一种集成开发软件。MyEclipse的功能强大,可以集成多种语言开发插件,进行相应开发语言的开发工作。
MySQL是一个关系数据库,底层代码是C、C++编写的,通过编译测试达到代码的可移植;而且,它支持支持Linux、Windows、Msc OS等多种操作系统,支持多线程。它的代码是开源的,用户可以在其基础上根据自己的需要进行二次开发;MySQL的体积小、速度快、成本低,因此一些小型网站的开发都选择 MySQL 作为其网站的数据库。
3 需求分析
软件系统的开发是根据用户的需求来设计开发出用户需要的软件系统或者系统中的软件部分的过程。项目流程化能够促进项目的监管、人员的合理分配。
需求分析是指对即时聊天系统的功能、非功能进行全面分析的过程,对以后开发出来的软件应该实现什么样的功能,具有什么样的界面以及软件能够达到什么样的性能等。
功能性需求分析
即时聊天系统在功能上主要能够实现如今人们经常用到的各种即时通讯软件的一些基本交流聊天的功能,主要的功能性需求如下:
1. 登录界面:注册用户能够进行登录,通过连接数据库进行判断用户是否能够进入好
友列表界面。
2. 注册界面:用户可以注册,注册信息可以被添加到数据库,然后用于确定用户的登
录。
3. 好友列表界面:用户能够自由添加、删除好友,移动黑名单等;同时能够实现双击
好友,能够进入对应好友聊天窗口等
4. 聊天界面:能够将聊天的信息、表情等显示到对应的聊天界面上;能够发送文件、
音乐、视频等;能够对聊天的历史记录进行简单的查看、翻页等。
5. 修改密码界面:让用户在忘记密码或者想修改密码时候,能够进行修改密码操作。
非功能性需求分析
1. 2. 3. 4.
操作系统:Windows7旗舰版; 硬盘:500G;
开发平台:MyEclipse2014; 数据库:MySQL。
4 总体设计
软件设计是从软件的用户的需求出发,根据需求分析来确定软件系统功能设计的整体结构,然后划分各个功能模块,最后确定每个模块的实现算法以及编写具体的代码,最终形成
[3]
了软件的具体设计方案。
功能模块设计
根据系统分析的结果画出系统功能模块图,对各个模块进行细分,确定模块相互结构关系。
图4- 1系统功能模块图
数据库设计
通过用户的注册,聊天等形成初步的数据需求;对数据需求进行概念上的设计,得到对应的E-R图;其次选择合适的方法,将E-R图转化为关系模型;然后对关系模型进行物理设[4]
计。
1. E-R图设计:分析确定各个数据表的字段、数据类型、关系等,画出E-R图。
图4- 2用户属性
图4- 3好友属性
图4- 4历史记录属性
2. 物理设计:根据系统的数据类型,我们可以选择为数据库表中字段最合适的数据类
[5]
型,字段大小,索引结构等。
表4- 1用户信息表
序列号 1 2 3 4 5 6 7 字段 id name zhanghao password sex birthday address 描述 用户编号 用户名 用户帐号 用户密码 性别 出生年月 地址 类型 int(11) varchar(16) varchar(11) varchar(32) varchar(2) varchar(32) varchar(32) 空 否 否 否 否 否 否 否 额外 主键(自增) 唯一 表4- 2好友信息表
序列号 1 2 3 4
字段 id zhanghao friendId blackname 描述 编号 用户帐号 好友帐号 黑名单 类型 int(11) varchar(11) varchar(255) varchar(255) 空 否 否 额外 主键(自增) 外键 表4- 3历史记录表
序列号 1 2 3
字段 id zhanghao who 描述 编号 用户帐号 属于者 类型 int(11) varchar(32) varchar(11) 空 否 否 否 额外 主键(自增) 外键
4 5 6 7 sendtime font record pic 发送时间 字体类型 发送类容 表情 varchar(32) varchar(64) varchar(255) varchar(255) 否 否 否 5 系统详细设计与实现
编码阶段是将软件设计阶段的各种描述转变成程序代码,在编码阶段应该注意编程语言的选择,在本次课题中,我们使用的是Java语言。
界面设计
软件界面的设计是非常重要的,对于各个模块采用不同的组件进行设计。下面简单的介绍下如何设计软件的界面。 登录界面
本即时聊天系统的登录界面(图:3-5),采用JFram容器,使用默认布局,通过setBounds()方法自定义位置。上部是一个JPanel,内置一个JLabel;中间是根据需要放置JLabel、JTExtField、JPasswordField;最下方放置一个JButton。具体代码如下: Sjp1_jbl=new JLabel(new ImageIcon(\"image/\"));S (0,-5,428,159); Sjbl1=new JLabel(\"zhanghao\");(70, 165, 30, 30); Sjtf=new JTextField();(110, 163, 130, 30); Sjbl2=new JLabel(\"mima\");(70, 200, 30, 30); Sjbl3=new JLabel(\"zhuce\");(255, 163, 52, 30); Sjpf=new JPasswordField();(110, 200, 130, 30); Sjbl4=new JLabel(\"xiugai\");(255, 200, 52, 30); Sjp3_jb1=new JButton(new ImageIcon(\"image/\")); (85, 270, 195, 30);
图5- 1登录界面
注册界面
在注册界面(3-6)中同样采用默认布局自定义位置。对于JLabel、JTExtField、JPasswordField如何放置就不讲太多了,在这里主要讲下新引入的知识点HashMap集合和Graphics绘画技术。
HashMap是集合类,我们可以通过put、get方法向其中添值、取值,其最重要的一点是它是键值对形式的,通过一个键就能取出相应的值,对于本界面的全国省市联动,正好可
以用到地址的灵活变动。通过For循环创建每个省份按钮,并添加addActionListener监听器,获取其对应省份代号,再通过get方法向HashMap索要其对应的ID值。代码如下: 添加:
HashMap