Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 )
文章目录
- Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 )
- 1.Java聊天室 IO流 Socket流 GUI界面 服务端功能及页面介绍
- 2.Java聊天室 IO流 Socket流 GUI界面 客户端功能及页面介绍
- 3.Java聊天室 IO流 Socket流 GUI界面 工具类Utils代码及解释(FileUtils文件发送的工具类Utils PathUtils是设置背景图片的图片路径Utils工具类
- 4.Java聊天室 IO流 Socket流 GUI界面 枚举与包装消息内容代码及详解User里存放的是将需要传递的内容整体打包为一个对象 然后分开读取 Net里存放的是服务端的消息类型枚举
- 5.Java聊天室 IO流 Socket流 GUI界面 服务端主界面代码及功能详解
- 6.Java聊天室 IO流 Socket流 GUI界面 服务端的RegisterUserThread线程与ServerReadMsgThread消息读取线程
- 7.Java聊天室 IO流 Socket流 GUI界面 客户端MainView界面详解
- 8.Java聊天室 IO流 Socket流 GUI界面 客户端RegisterView界面详解
- 9.Java聊天室 IO流 Socket流 GUI界面 客户端FunctionView界面详解
- 10.Java聊天室 IO流 Socket流 GUI界面 客户端ClientReadMsgThread消息读取进程详解
- 11.Java聊天室 IO流 Socket流 GUI界面 客户端TiShi界面详解
- 12.Java聊天室 IO流 Socket流 GUI界面 客户端DeleteCompoent界面详解
- 13.Java聊天室 IO流 Socket流 GUI界面 客户端下线功能
- 14.Java聊天室 IO流 Socket流 GUI界面 客户端ChaXunCompoent界面详解
- 15.Java聊天室 IO流 Socket流 GUI界面 客户端YinShenCompoent界面详解
- 16.Java聊天室 IO流 Socket流 GUI界面 客户端WenJianconpoent界面详解
- 17.Java聊天室 IO流 Socket流 GUI界面 客户端PublicCompoent界面详解
- 18.Java聊天室 IO流 Socket流 GUI界面 客户端UserManageCompoent界面详解
- 19.Java聊天室 IO流 Socket流 GUI界面 客户端ShangXiaCompoent界面详解
- 20.Java聊天室 IO流 Socket流 GUI界面 客户端PrivateCompoent界面详解
- 21.Java聊天室 IO流 Socket流 GUI界面 所有的效果图
- 22.Java聊天室 IO流 Socket流 GUI界面 所有的代码
- 23.总结与bug
- SANWA聊天室主体页面分布
1.Java聊天室 IO流 Socket流 GUI界面 服务端功能及页面介绍
- Java聊天室 IO流 Socket流 GUI界面 服务端功能及页面介绍.https://blog.csdn.net/cx9977/article/details/108472508
2.Java聊天室 IO流 Socket流 GUI界面 客户端功能及页面介绍
- Java聊天室 IO流 Socket流 GUI界面 客户端功能及页面介绍.https://blog.csdn.net/cx9977/article/details/108472581
3.Java聊天室 IO流 Socket流 GUI界面 工具类Utils代码及解释(FileUtils文件发送的工具类Utils PathUtils是设置背景图片的图片路径Utils工具类
- Java聊天室 IO流 Socket流 GUI界面 工具类Utils代码及解释(FileUtils文件发送的工具类Utils PathUtils是设置背景图片的图片路径Utils工具类.https://blog.csdn.net/cx9977/article/details/108472610
4.Java聊天室 IO流 Socket流 GUI界面 枚举与包装消息内容代码及详解User里存放的是将需要传递的内容整体打包为一个对象 然后分开读取 Net里存放的是服务端的消息类型枚举
- Java聊天室 IO流 Socket流 GUI界面 枚举与包装消息内容代码及详解(User里存放的是将需要传递的内容整体打包为一个对象 然后分开读取 Net里存放的是服务端的消息类型枚举. https://blog.csdn.net/cx9977/article/details/108472625
5.Java聊天室 IO流 Socket流 GUI界面 服务端主界面代码及功能详解
- Java聊天室 IO流 Socket流 GUI界面 服务端主界面代码及功能详解.https://blog.csdn.net/cx9977/article/details/108472660
6.Java聊天室 IO流 Socket流 GUI界面 服务端的RegisterUserThread线程与ServerReadMsgThread消息读取线程
- Java聊天室 IO流 Socket流 GUI界面 服务端的RegisterUserThread线程与ServerReadMsgThread消息读取线程.https://blog.csdn.net/cx9977/article/details/108472672
7.Java聊天室 IO流 Socket流 GUI界面 客户端MainView界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端MainView界面详解.https://blog.csdn.net/cx9977/article/details/108472700
8.Java聊天室 IO流 Socket流 GUI界面 客户端RegisterView界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端RegisterView界面详解.https://blog.csdn.net/cx9977/article/details/108472850
9.Java聊天室 IO流 Socket流 GUI界面 客户端FunctionView界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端FunctionView界面详解.https://blog.csdn.net/cx9977/article/details/108472871
10.Java聊天室 IO流 Socket流 GUI界面 客户端ClientReadMsgThread消息读取进程详解
- Java聊天室 IO流 Socket流 GUI界面 客户端ClientReadMsgThread消息读取进程详解.https://blog.csdn.net/cx9977/article/details/108472896
11.Java聊天室 IO流 Socket流 GUI界面 客户端TiShi界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端TiShi界面详解.https://blog.csdn.net/cx9977/article/details/108472927
12.Java聊天室 IO流 Socket流 GUI界面 客户端DeleteCompoent界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端DeleteCompoent界面详解.https://blog.csdn.net/cx9977/article/details/108472955
13.Java聊天室 IO流 Socket流 GUI界面 客户端下线功能
- Java聊天室 IO流 Socket流 GUI界面 客户端下线功能.https://blog.csdn.net/cx9977/article/details/108472974
14.Java聊天室 IO流 Socket流 GUI界面 客户端ChaXunCompoent界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端ChaXunCompoent界面详解.https://blog.csdn.net/cx9977/article/details/108472989
15.Java聊天室 IO流 Socket流 GUI界面 客户端YinShenCompoent界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端YinShenCompoent界面详解.https://blog.csdn.net/cx9977/article/details/108473018
16.Java聊天室 IO流 Socket流 GUI界面 客户端WenJianconpoent界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端WenJianconpoent界面详解.https://blog.csdn.net/cx9977/article/details/108473035
17.Java聊天室 IO流 Socket流 GUI界面 客户端PublicCompoent界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端PublicCompoent界面详解.https://blog.csdn.net/cx9977/article/details/108473058
18.Java聊天室 IO流 Socket流 GUI界面 客户端UserManageCompoent界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端UserManageCompoent界面详解.https://blog.csdn.net/cx9977/article/details/108473104
19.Java聊天室 IO流 Socket流 GUI界面 客户端ShangXiaCompoent界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端ShangXiaCompoent界面详解.https://blog.csdn.net/cx9977/article/details/108473137
20.Java聊天室 IO流 Socket流 GUI界面 客户端PrivateCompoent界面详解
- Java聊天室 IO流 Socket流 GUI界面 客户端PrivateCompoent界面详解.https://blog.csdn.net/cx9977/article/details/108473091
21.Java聊天室 IO流 Socket流 GUI界面 所有的效果图
- Java聊天室 IO流 Socket流 GUI界面 所有的效果图.https://blog.csdn.net/cx9977/article/details/108473156
22.Java聊天室 IO流 Socket流 GUI界面 所有的代码
- Java聊天室 IO流 Socket流 GUI界面 所有的代码.https://blog.csdn.net/cx9977/article/details/108473183
23.总结与bug
- 在使用objectstream流的时候 记得要定义种子 并且 in与out流的创建不能同时创建多个 否则会报找不到上次读取后的位置
- 切换账号功能有问题 第二次登陆新的账号 新的流无法创建出来 所有的功能都会出现问题 有待改正 这一问题
- 其他功能有些没有添加校验 后续可以将用户名查找进行添加 判断此用户名是否可以进行聊天与文件等的发送
- 有待改进与完善
SANWA聊天室主体页面分布
- 布局
- 分为服务端与客户端分别进行构建
聊天室需求与思路
- 需求
必须完成的功能点:
1、用户名登录注册(判断有没有重复用户名,可设置ip和端口)
2、上下线提醒
3、在线列表
4、私聊
5、公聊
6、发送文字,文件。
7、聊天记录 保存 查询 删除。
8、下线
选做功能
2、建群
3、大文件传输。(新建流传输)*
4、离线消息*
5、个人信息设置
6、语音聊天*
7、朋友圈
8、文字表情
9、增删好友,修改好友备注名。
- 思路
1:分别开发客户端 和 服务端 先实现客户端和服务的聊天功能
2.我们要把客户端和服务端 读消息和写消息 不能都放主线程 这样设计不合理
我们主线程 应该录入消息 子线程用来读取消息
以后开发中要注意 键盘录入数据应该放在主线程 ,如果放在子线程 有可能录入不了数据
3.在实际中 我们肯定是不和服务器聊天的,我们是客户端和客户端进行聊天 ,所以我们修改代码
服务器 只读取消息 然后转发消息
那实现步骤 我们循环监听客户端 每连接一个客户端 我们把 管道存到一个集合中 并循环开启一个客户端 对应的读取消息的子线程 并把管道集合传过去
子线程拿到 相应的管道 获取该管道的输出流 写出去 当然这里需要我们定义 消息格式 比如: 接收者:消息内容:发送者
4.上步我们用的是List单列集合,通过索引来区分的每个用户,不是很方便,我们改进一下,我们可以用双列集合来,保存一个用户名和他对应的管道,在服务端通过
键找值的方式来获取对应管道,进行消息的转发,
这样需要我们在 客户端 在开启聊天线程之前,先进行用户名的注册, 服务端也不要着急 开启 聊天线程, 而是再创建一个保存用户名的线程,单独完成用户名的注册
用户名注册完成后,在保存用户名的线程里面 来开启 服务端的聊天线程
5. 上步用户名完成后,我们顺遍在保存用户名的线程里面 ,再把上线提醒功能做了
6. 在客户端里面 开启聊天线程之后 在提供 菜单选项,让用户选择 私聊,公聊,在线列表,退出等 选项
7.在实现私聊功能时 约定发送消息的格式为 接收者:消息内容:消息类型
8.服务端 收到客户端发来的消息后,拆分消息,根据消息类型 进行不同的逻辑处, 将消息转发回去 转发格式 约定为 发送者:内容:消息类型:时间