这是本人大二下学期的课程设计,本博客简单的讲解各个部分代码。整个项目已打包上转到github,以下是链接:github网页(点不开的话请复制黏贴访问:https://github.com/liangtaichi/EasyLiveChatByJava
用到的技术:javaSwing,mysql8,以及简单的java多线程。
项目需求
实现一个Java版即时聊天程序。
【功能提示】
1、用户登录及登录验证:用户能够使用固定帐号(帐号程序内置即可,无需完成额外的注册功能)登录系统,系统能对预定的帐号、密码进行验证。
2、两两聊天功能。
3、建群及群聊功能,并且在下次登录时,群聊组依然存在。
4、共享白板:聊天时,可创建白板,在白板上共同绘制图形,可保存白板绘制的图片。
5、好友管理:能够显示好友列表,并能够添加、修改、删除好友。
6、在线、离线状态显示:能够显示好友的在线状态或离线状态。
7、聊天记录管理:能够以文件或数据库形式将聊天记录进行存储,并能打开、显示、删除所存储的聊天记录。
需求分析
系统总体设计
数据库的设计或文件结构的设计
本系统的数据库采用mysql。
只需要一个id作为主键,自动递增,然后一个user还有一个psw三列即可,具体如图:
聊天记录:一个count作为主键,自动递增然后一个sendorreceive列选择这条记录是发送的还是接受的,最终一个information列描述具体信息。同时,每个用户的聊天记录存在不同表中。具体如图:
群组关系:一个count作为主键,自动递增,然后一列是群名称,一列是群成员,所有群组关系存放在同一个表中。具体如图。
好友关系:和群组关系差不都,一个count作为主键自动递增,一个frendA列作为一个好友,一个frendB列作为另一个好友,如果两个名字出现在同一行,则证明两个人是好友。具体如图。
群组聊天记录:一个count作为主键自动递增,一列groupname存放该聊天记录发送的群,一列user存放发送人的名字,一列information存放发送的信息。如图。
项目结构
