- springBoot项目,前端为java swing
- 客户端开放登陆注册,登录注册进去后,有左侧为聊天系统,右侧为三维五子棋(其实是四子棋)的AI,本地,联机以及熄灯玩法,还有普通五子棋的选项,现已单独分出运行。
四子棋地址:https://bbzlhmsh3.neiwangyun.net/
聊天后端服务器:KarGoBangServer
登录界面
登录中
服务器未连接
服务器正在重新连接
注册界面
注册中
加好友界面-未接收
加好友界面-已发送
聊天界面
更换主题界面
服务器用户管理界面
将这里的VM选项填入
-Djava.awt.headless=false
找到
jdk->jre/lib/security/java.security
将第706行:
jdk.tls.disabledAlgorithms=SSLv3, DSA, RSA,RC4, DES, MD5withRSA, \
改为:jdk.tls.disabledAlgorithms=RC4, DES, MD5withRSA, \
功能:
- 与前端swing客户端的聊天加好友等接口对接
- 实时展示连接客户的ip和端口
- 与连接数据库,进行增删改查
运行src/main/java下的com.ZLchat.server.EchoThreadServer.java
来启动服务器,当弹出管理用户动态表格即为启动成功。
如果显示xx端口占用,这里以8080
为例:
根据端口号查找进程:
netstat -aon |findstr 8080
杀死该进程:
taskkill -f -pid 8080
将src/main/java/com/ZLchat/util/ComponentUtil/Controller/Controller.java
类中 52行 的
clien = new Socket("localhost", 8888)
改为
clien = new Socket("103.46.128.46", 59614) <br>
云服务器ip:103.46.128.46
云服务器端口:59614
(暂时关闭)
运行src/main/java下的com.ZLchat.ZLChatSpringBootApplication.java
来启动客户端程序,要注意配置好相关依赖和配置。
用于与数据库进行交互,分为
- 接口部分: 内含与数据库进行交互的方法,注册为
bean
impl
: 接口的实现类,通过ioc获取mapper
: 与数据库完成映射的映射类,注册为mapper
operation
: 博客部分的数据库交互(未整合)
从数据库中获取的实体类
- 接口部分:
BackgroundService
: 后台刷新聊天记录/刷新待同意好友邀请列表以及已发送好友邀请列表ChatService
: 完成发送信息/同意好友邀请/拒绝好友邀请/发送好友邀请InitHomePageService
: 初始化客户端主界面,获取用户头像/获取好友头像/获取好友列表/获取所有的好友邀请(已发送和待同意)及其头像/获取好友在线状态/获取好友聊天记录LoginService
:完成登录验证/注册服务/读取保存的账号密码Minimize
:用于实现窗口的最大化最小化动画Shakeable
:用于实现组件的可抖动ViewServer
:视图层服务,展示登录与主界面/客户端出问题时进行加载/服务器断开时进行加载impl
: 接口的实现类,通过ioc获取
BeansUtil
: 配置spring的IOC容器的配置类,内涵mybatis配置ColorUtil
:用于读取颜色,修改颜色的工具类ComponentUtil
:用于形成主界面的组件
Button
: 按钮控件
ChooseBackButton
: 点击背景会变颜色的按钮,鼠标进入按钮范围内会变色RadioButton
: 圆形功能性按钮,进入范围会变色,用于右上角关闭最小化最大化RoundButton
: 圆角按钮,通过绘制图形完成的圆角ThreeDimensionalBorder
:带阴影的按钮,可以控制阴影颜色和范围CompositeComponent
: 复合控件,即完成度较高的组件
Menu
: 菜单栏组件,主程序左半部分的菜单栏以及上面的功能标签MenuContent
: 菜单内容组件,及点击功能标签后显示的内容窗口Frame
: 画布控件
FadingText
: 渐变消失的提醒组件Frameless
:没有边框栏的,实现拖动的画布Label
: 标签组件
DynamicJLabel
: 字体标签,可以跟随字体长度变化大小,需要确定字体类型以及中心点,会以中心点为中心变化,修改可以只修改字体并自适应InnerLabel
: 聊天窗口,即主程序双击好友打开的聊天窗,仿照steam聊天窗messageLabel
: 消息标签,分为我方消息和对方消息,自动匹配头像位置,并且字数超过一定数量会进行换行,最后一行字单独列出,与InnerLabel联合使用RadioJLabel
: 圆角标签RadioTextJLabel
: 背景带图片和文字的标签ShakeLabel
: 实现Shakeable的表现,通过方法可以抖动Loading
: 加载组件,也是复合组件Controller
: 驱动程序运行的驱动类EmailUtil
: 发送邮件类,需要查看下面的注意事项进行配置FontUtil
:字体工具类,包括查看系统所有自带字体,以及获取某一字体一行字的长度,用于判断组件长度PictureUtil
:图片工具类
GetPicture
:将数据库中的图像字符串转为BufferedImageRemoveBackground
: 某些图片背景带有白色和黑色,将背景去除RemoveBlack
:原理同上ToBufferedImage
:将Image
转为BufferedImage
ToPicture
:BufferedImage
图片转化成字符串储存在数据库中SoundUtil
: 音乐处理类,某些类功能未完善好,光使用PlaySound播放MP3PlaySound
:播放音乐
LoadingHome
:登录界面Home
: 主界面BlogWindow
:博客窗口界面
通过
Controller
的start
方法开始