基于Java技术的即时聊天系统实现.doc

上传人:h**** 文档编号:101705 上传时间:2018-07-06 格式:DOC 页数:109 大小:850.50KB
下载 相关 举报
基于Java技术的即时聊天系统实现.doc_第1页
第1页 / 共109页
基于Java技术的即时聊天系统实现.doc_第2页
第2页 / 共109页
基于Java技术的即时聊天系统实现.doc_第3页
第3页 / 共109页
基于Java技术的即时聊天系统实现.doc_第4页
第4页 / 共109页
基于Java技术的即时聊天系统实现.doc_第5页
第5页 / 共109页
点击查看更多>>
资源描述

1、 2015 届本科毕业论文(设计) 基于 Java 技术的 即时聊天系统实现 代码: http:/ 姓 名: _ XXXX _ 系 别: 计算机与信息技术学院 专 业: 网络安全 _ 学 号: _XXXXXXXX_ _ 指导教师: _ XXXXX _ 2015 年 5 月 8 日I 目 录 1 绪论 .1 1.1 背景 .1 1.2 论文研究内容与方法 .1 2 开发环境介绍 .1 2.1 Java 技术简介 .1 2.2 开发工具简介 .1 3 需求分析 .1 3.1 功能性需求分析 .2 3.2 非功能性需求分析 .2 4 总体 设计 .2 4.1 功能模块设计 .2 4.2 数据库设计

2、.3 5 系统详细设计与实现 .5 5.1 界面设计 .5 5.1.1 登录界面 .5 5.1.2 注册界面 .5 5.1.3 修改密码界面 .6 5.1.4 好友列表界面 .7 5.1.5 聊天窗口界面 .8 5.1.6 服务器端界面 .9 5.2 功能实现 .9 5.2.1 实现登录 .9 5.2.2 实现注册 . 10 5.2.3 实现修改密码 . 10 5.2.4 添加、删除好友 . 11 5.2.5 移动黑名单 . 11 5.2.6 多对多 聊天 . 12 5.2.7 显示表情 . 12 5.2.8 文件的发送 . 13 5.2.9 历史记录 . 14 6 测试阶段 . 15 总 结

3、 . 15 参考文献 . 15 致 谢 . 15 II 基于 Java 技术的即时聊天系统 实现 摘要 基于 Java 技术的即时聊天系统采用 C/S 架构 , MyEclipse 集成开发环境和 MySQL 数据库为开发环境,在 Window7 系统下使用 Java 程序设计语言开发的一款聊天系统。系统主要分为:用户注册、用户登录、修改密码、好友列表、聊天等五大模块;在功能上用户能够进行添加删除好友,移动黑名单,一对一、多对多的聊天,发送表情,传送文件等操作。 关键词 Java; 即时聊天 系 统 ; C/S; MyEclipse; MySQL; Implementation of Inst

4、ant 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 d

5、evelopment 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 opera

6、tions. Keywords Java; instant messaging system; C/S ; MyEclipse; MySQL; 1 1 绪论 1.1 背景 随着互联网的蓬勃发展,即时聊天 已经成为如今最流行的通讯方式, 尤其在移动互联网方面, 即时聊天已经与我们的生活息息相关。 同 时 , Java 是 一种非常流 行的程序设计语言,可以 用来开发 面向对象、跨平台 的应用程序。 即时聊天已经与我们的生活不可分割,利用 自己 学习到的 Java 语言开发一款自己的聊天软件是一个非常不错的选择,既能够检验自己对 Java 技术 的 掌握,同时又能够开发一款自己的聊天软件。 1.2

7、 论文 研究 内容 与方法 基于 Java 技术的聊天系统主要是探索如何在 Java 技术下能够实现即时聊天 的一些基本功能: 用户 注册 ,用户 登录, 添加删除好友,移动 黑名单,实现一对一、多对多的聊天, 能够 发送表情,传送图片 、 视频等 1。 论文 的 设计 主要采用 了两种研究方法 :一是文献资料研究的方法。在研究聊天系统现实中, 本人通过图书馆、电子图书馆学习了 Java 语言中的一些编程技术 ;二是 理论与实际相结合,既然掌握了技术与方法,那么就应该快速的进行实践,在软件的设计过程中 ,才能够理解到理论与现实的差距, 遇到棘手问题, 应该快速查阅资料快速攻破。 2 开发环境介

8、绍 本聊天系统是基于 Java 技术的, 采用 C/S 结构,采用 MVC 的开发框架,利用 MyEclipse、MySQL 数据库作为开发工具。 2.1 Java 技术简介 Java 是一种程序设计 语言, 主要 应用于 Android 应用、 JSP 网站、 PC 和 游戏控制台 等领域 。 Java 语言能够使开发者在设计程序的时候能够根据自己的情况自定义数据类型和关联操 作,对于程序中的数据结构的改变或者代码的改变进行相应的操作; Java 语言编写的程序编译后无需再次编译,可以在任何硬件设备下运行 1。 本次课题中主要用到 Swing 工具包 中 JFrame 类,采用 Java 和

9、 Windows 混合界面 风格 ,作为 开发 程序 的 外观风格 来 设计聊天系统界面 ; 其次, 使用 Java Socket 编程 技术实现系统之间 的 网络通信 2。 2.2 开发工具 简介 MyEclipse 是一种集成开发软件 。 MyEc lipse 的功能强大, 可以集成 多种 语言 开发 插件 ,进行相应 开发语言 的开发工作 。 MySQL 是一个 关系 数据库 , 底层代码是 C、 C+编写的 ,通过编译测试达到代码的可移植 ;而且,它支持支持 Linux、 Windows、 Msc OS 等多种操作系统,支持多线程 。 它的代码是开源的 , 用户可以在其基础上根据 自己

10、的需要进行二次开发 ; MySQL 的体积小 、速度快、成本低, 因此一些 小型网站的开发都选择 MySQL 作为 其 网站 的 数据库 。 3 需求分析 软件系统的开发是根据用户 的 需求 来 设计开发出 用户需要的 软件系统或者系统中的软件部分 的 过程 。项目流程化能够促进项目的监管、人员的合理分配。 2 需求分析是指对即时 聊天系统的功能、非功能进行 全面 分析的过程,对以后开发出来的软件应该实现什么样的功能, 具有什么样 的界面 以及软件能够 达到什么样的性能 等。 3.1 功能 性 需求分析 即时聊天系统 在功能上 主要能够实现如今人们经常用到的各种即时通讯软件的 一些基本交流聊天

11、的功能,主要的功能性需求如下: 1. 登录界面: 注册 用户能够进行登录, 通过连接数据库进行判断用户是否能够进入好友列表界面 。 2. 注册界面: 用户可以注册,注册信息可以被添加到数据库,然后用于确定用户的登录 。 3. 好友列表界面: 用户能够 自由 添加、删除好友, 移动 黑名单 等 ; 同时 能够实现双击好友,能够进入对应好友聊天窗口等 4. 聊天界面:能够将聊天的信息、表情等显示 到对应 的 聊天界面上;能够发送 文件、音乐、视频等 ; 能够对聊天的历史记录进行 简单的查看 、翻页 等 。 5. 修改密码界面 :让用户在忘记密码或者想修改密码时候,能够 进行 修改 密码 操作 。

12、3.2 非功能性需求 分析 1. 操作系统: Windows7 旗舰版 ; 2. 硬盘: 500G; 3. 开发平台: MyEclipse2014; 4. 数据库: MySQL。 4 总体 设计 软件设计是从软件 的 用户的 需求出发,根据需求分析 来 确定软件系统 功能设计 的整体结构, 然后 划分 各个 功能模块, 最后确定每个 模块的 实现算法以及编写具体的代码, 最终 形成了 软件的具体设计方案 3。 4.1 功能模块 设计 根据系统分 析的结果 画出系统 功能模块 图 , 对各个模块进行细分,确定模块相互 结构关系。 3 图 4- 1 系统功能模块 图 4.2 数据库设计 通过用户的

13、注册,聊天等形成初步的数据需求;对数据需求进行概念 上的 设计,得到 对应 的 E-R 图; 其次 选择合适的方法,将 E-R 图转化为关系模型; 然后 对关系模型进行物理设计 4。 1. E-R 图 设计: 分析确定各个数据表的字段、数据类型、关系等,画出 E-R 图。 图 4- 2 用户属性 4 图 4- 3 好友属性 图 4- 4 历史记录属性 2. 物理设计: 根据系统的数据类型,我们可以选择为数据库表中字段最合适的数据类型,字段大小,索引结构等 5。 表 4- 1 用户信息表 序 列 号 字段 描述 类型 空 额外 1 id 用户编号 int(11) 否 主键(自增) 2 name

14、用户名 varchar(16) 否 3 zhanghao 用户帐号 varchar(11) 否 唯一 4 password 用户密码 varchar(32) 否 5 sex 性别 varchar(2) 否 6 birthday 出生年月 varchar(32) 否 7 address 地址 varchar(32) 否 表 4- 2 好友信息表 序列号 字段 描述 类型 空 额外 1 id 编号 int(11) 否 主键(自增) 2 zhanghao 用户帐号 varchar(11) 否 外键 3 friendId 好友帐号 varchar(255) 4 blackname 黑名单 varcha

15、r(255) 表 4- 3 历史记录表 序列号 字段 描述 类型 空 额外 1 id 编号 int(11) 否 主键(自增) 2 zhanghao 用户帐号 varchar(32) 否 3 who 属于者 varchar(11) 否 外键 5 4 sendtime 发送时间 varchar(32) 否 5 font 字体类型 varchar(64) 否 6 record 发送类容 varchar(255) 否 7 pic 表情 varchar(255) 5 系统详细设计与实现 编码阶段 是将软件设计阶段的各种描述转变成程序代码,在编码阶段应该注意编程语言的选择,在本次课题中,我们使用的是 Ja

16、va 语言。 5.1 界面设计 软件界面的设计 是非常重要的 , 对于 各个模块采用不同的组件进行设计 。 下面简单的 介绍下如何设计软件的界面。 5.1.1 登录界面 本 即时聊天系统的登录界面 (图: 3-5) ,采用 JFram容器, 使用默认布局 , 通过 setBounds()方法 自定义位置。 上 部 是一个 JPanel,内置 一个 JLabel;中间是根据需要放置 JLabel、JTExtField、 JPasswordField;最下方放置一个 JButton。具体代码如下: Sjp1_jbl=new JLabel(new ImageIcon(“image/login.jpg

17、“);S jp1_jbl.setBounds(0,-5,428,159); Sjbl1=new JLabel(“zhanghao“);Sjbl1.setBounds(70, 165, 30, 30); Sjtf=new JTextField();Sjtf.setBounds(110, 163, 130, 30); Sjbl2=new JLabel(“mima“);Sjbl2.setBounds(70, 200, 30, 30); Sjbl3=new JLabel(“zhuce“);Sjbl3.setBounds(255, 163, 52, 30); Sjpf=new JPasswordFiel

18、d();Sjpf.setBounds(110, 200, 130, 30); Sjbl4=new JLabel(“xiugai“);Sjbl4.setBounds(255, 200, 52, 30); Sjp3_jb1=new JButton(new ImageIcon(“image/denglu.png“); Sjp3_jb1.setBounds(85, 270, 195, 30); 图 5- 1 登录界面 5.1.2 注册界面 在注册界面 ( 3-6) 中同样采用默认布局 自定义位置。 对于 JLabel、 JTExtField、JPasswordField 如何放置就不讲太多了,在这里主

19、要讲下新引入的知识点 HashMap 集合 和Graphics 绘画技术 。 HashMap 是 集合 类 ,我们可以通过 put、 get 方法向其中添值、取值, 其最重要的一点是它是键值对形 式的,通过一个键就能取出相应的值,对于本界面的全国省市联动,正好可6 以用到 地址的灵活变动。 通过 For 循环创建 每 个省份按钮 ,并 添加 addActionListener 监听器,获取其对应 省份代号,再通过 get 方法向 HashMap 索要其对应的 ID 值。 代码如下: 添加 : HashMap hm=new HashMap(); FOR(INT i=0;iprovince.len

20、gth;i+)hm.put(provincei, ari); 获取: if(hm.containsKey(s)RegisterAddress Address=(RegisterAddress) hm.get(s); System.arraycopy(Address.getCity(), 0, City, 0, Address.getCity().length); for(int i=0;iAddress.getCity().length;i+) addr_jb3.addItem(Cityi); Graphics 可以对其进行重写,调用其方法进行绘画,对于本界面中的验证码,正是运用到此类,可以根

21、据自己想要的样式进行绘制。 代码如下: StringBuffer randomRecv = new StringBuffer(); FOR (INT i = 0; i Recv; i+) /通过循环绘制验证码 String stm = String.valueOf(codeSequencerandom.nextInt(codeSequence.length); red = random.nextInt(255);green = random.nextInt(255); blue = random.nextInt(255);g.drawString(stm, (i + 1) * X, CodeY

22、); code= randomRecv.toString(); 图 5- 2 注册界面 5.1.3 修改密码界面 密码修改界面(图 3-7)是一个重要的组成部分,用户在此能够进行密码 修改 、 重置 密码;在 本界面中同样的运用到以上界面的基本布局界面的组件,同样的引入了新的组件JTabbedPane。 JTabbedpane提供 add方法允许设计者向其中添加标题,通过添加 addChangeListener监视7 器,当触发时候进行页面的跳转。 从密码修改界面能够开出它拥有两个界面提供用户使用。代码如下: Sjp0=new JPanel();Sjp0.setLayout(null); Sj

23、p1=new JPanel();Sjp1.setLayout(null); Sjtp=new JTabbedPane();Sjtp.add(“修改密码 “,Sjp0);Sjtp.add(“忘记密码 “,Sjp1); 图 5- 3 密码修改界面 5.1.4 好友列表界面 在好友列表界面 (图 3-8) 中,引入 一个新的组件 JTree。 JTree 是树形组件 ,能够添加删除 子节点 ,子节点同样能够添加子节点。 JTree 是许多初学者在做类似系统软件的首选,对于 Java 默认的 Tree 节点、 把柄 的图标是不美观的,我们需要对其进行重写。 代码如下: tree.setCellRenderer(new DefaultTreeCellRenderer() public getStreeRendererComponent(JTree stree,string val,boolean bool, int cow, boolean havefoc) if (leaf) this.setIcon(title); this.setClosedIcon(close) return this; );

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。