此为大二《Java程序设计》结课项目考核内容。明明学的专业跟项目内容不符,不知道为什么要学Java Swing,浪费时间?虽说如此,但还是在辣鸡学校的水比老师的示例的基础上作了些更改,完成了Java简易聊天室的项目。项目全部文件(包括素材和源码)已上传到github上:链接,欢迎克隆、交流学习。
JAVA聊天室项目使用简介
一、项目环境
- 软件开发工具:Eclipse
- JDK:JDK1.8
- 数据库:SQL Server 2008 R2(水比老师用的是MySQL,看我写的好,还想叫我把代码改成用跟他同一个数据库的再发他一份,懂的都懂)
- 通信协议:TCP协议
- 项目结构:客户端/服务端结构
- 功能实现:在线离线聊天,消息记录,区别在线离线,注册,记住密码,隐身登录,找回密码,添加删除好友…等等(够你混项目创新展示了)
- 项目启动流程:先运行StartServer.java开启服务器,可多次运行ClientLogin.java登录,双击头像即可开启聊天
二、项目代码结构
客户端代码结构:
- 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//服务端开启与关闭界面,日志界面
三、数据库结构
用的是sqljdbc.9.4.0.0,我GitHub中也有给,解压后有适用三个版本jdk的jdbc,若你用的不是jdk1.8记得在Eclipse中重新导入正确的适用的jdbc
表:
- chatmessage:存放聊天信息
- tempmessage:存放离线临时信息
- user:存放用户信息
- userrelation:存放用户间的好友关系
存储过程:
- Register:注册操作
- SeekMessage:搜寻历史聊天记录操作
- SeekOfflineMessage:搜寻离线临时信息记录
- SendPasswordEmail:通过邮箱找回密码操作
- tempTomessage:临时信息转历史信息操作
四、项目运行部分截图如下:
五、注意事项:
- 不确定导出的SQL Server有没有导出了数据库邮件配置
因此找回密码功能可能实现不了,你可以重新配置数据库邮件配置,再修改我的找回密码存储过程就可以了,很简单。
导入SQL Server中平常需注意的我就不多说啦。 - 代码注释可能没写全,也有概率写错,所以借鉴学习下就好,不要盲目全信。
其实仔细端倪代码还有很多需要优化的地方,不过此文章也就想帮帮要挂科的学生罢了哈哈,懂的人也可以看看提建议互相学习哈。若想糊弄老师,混过去,就不要关心太多啦,直接拷贝项目进去就好啦!以后我也会优化好代码持续放上去