此为大二《Java程序设计》结课项目考核内容。明明学的专业跟项目内容不符,不知道为什么要学Java Swing,浪费时间?虽说如此,但还是在辣鸡学校的水比老师的示例的基础上作了些更改,完成了Java简易聊天室的项目。项目全部文件(包括素材和源码)已上传到github上:链接,欢迎克隆、交流学习。

JAVA聊天室项目使用简介

一、项目环境

  1. 软件开发工具:Eclipse
  2. JDK:JDK1.8
  3. 数据库:SQL Server 2008 R2(水比老师用的是MySQL,看我写的好,还想叫我把代码改成用跟他同一个数据库的再发他一份,懂的都懂)
  4. 通信协议:TCP协议
  5. 项目结构:客户端/服务端结构
  6. 功能实现:在线离线聊天,消息记录,区别在线离线,注册,记住密码,隐身登录,找回密码,添加删除好友…等等(够你混项目创新展示了)
  7. 项目启动流程:先运行StartServer.java开启服务器,可多次运行ClientLogin.java登录,双击头像即可开启聊天

二、项目代码结构

java 推送 框架 java聊天框架_eclipse


java 推送 框架 java聊天框架_后端_02

客户端代码结构:

  • com.yychat.model:
FriendTreeRender.java//好友列表的渲染模型
 	Message.java//传输中的消息类
 	MessageType.java//消息类型接口
 	User.java//操作用户类
 	UserType.java//用户类型接口
  • com.yychat.view
AddFriend.java//添加好友的窗体
 	ClientLogin.java//登录界面
 	FriendChat.java//聊天界面
 	FriendList.java//好友列表界面
 	PasswordBack.java//找回密码的窗体
  • com.yychatclient.control
ClientReceiverThread.java//客户端接收线程类
  	ManageAllChat.java//用于管理所有聊天
  	ManageAllList.java//用于管理所有好友列表
  	ManageAllThreads.java//用于管理所有客户端线程
  	YYchatClientConnection.java//用于初连接服务端

服务端代码结构

  • com.yychat.model
Message.java
 	MessageType.java
 	User.java
 	UserType.java
  • com.yychatserver.control
DBUtil.java//用于连接数据库进行数据库操作的工具类
  	ServerReceiverThread.java//服务端线程类
  	ManageAllThreads.java//用于管理所有服务端线程
  	YYchatServer.java//用于被开启服务端和初次连接
  • com.yychatserver.view
StartServer.java//服务端开启与关闭界面,日志界面

三、数据库结构

java 推送 框架 java聊天框架_后端_03


用的是sqljdbc.9.4.0.0,我GitHub中也有给,解压后有适用三个版本jdk的jdbc,若你用的不是jdk1.8记得在Eclipse中重新导入正确的适用的jdbc

表:

  • chatmessage:存放聊天信息
  • tempmessage:存放离线临时信息
  • user:存放用户信息
  • userrelation:存放用户间的好友关系

存储过程:

  • Register:注册操作
  • SeekMessage:搜寻历史聊天记录操作
  • SeekOfflineMessage:搜寻离线临时信息记录
  • SendPasswordEmail:通过邮箱找回密码操作
  • tempTomessage:临时信息转历史信息操作

四、项目运行部分截图如下:

java 推送 框架 java聊天框架_java 推送 框架_04


java 推送 框架 java聊天框架_开发语言_05


java 推送 框架 java聊天框架_java_06

java 推送 框架 java聊天框架_后端_07


java 推送 框架 java聊天框架_eclipse_08


java 推送 框架 java聊天框架_后端_09


java 推送 框架 java聊天框架_java_10


java 推送 框架 java聊天框架_后端_11


java 推送 框架 java聊天框架_java 推送 框架_12


五、注意事项:

  1. 不确定导出的SQL Server有没有导出了数据库邮件配置
    因此找回密码功能可能实现不了,你可以重新配置数据库邮件配置,再修改我的找回密码存储过程就可以了,很简单。
    导入SQL Server中平常需注意的我就不多说啦。
  2. 代码注释可能没写全,也有概率写错,所以借鉴学习下就好,不要盲目全信。

其实仔细端倪代码还有很多需要优化的地方,不过此文章也就想帮帮要挂科的学生罢了哈哈,懂的人也可以看看提建议互相学习哈。若想糊弄老师,混过去,就不要关心太多啦,直接拷贝项目进去就好啦!以后我也会优化好代码持续放上去