首页
会员中心
到顶部
到尾部
Java毕业设计

仿qq聊天工具设计源码及说明

时间:2020/10/13 15:18:55  作者:  来源:  查看:0  评论:0
内容摘要: 服务器:使用Netty构建,负责消息的接收和转发,初衷是考虑到高并发(其实自己玩玩也没多大并发量),Mina和Netty都是非常好的高并发框架,选择了Netty是考虑到他是一个新生儿,比Mina更有活力和潜力(当然,并不是说Mina不好),据说两者皆可以达到普通电脑单台并...

服务器:使用Netty构建,负责消息的接收和转发,初衷是考虑到高并发(其实自己玩玩也没多大并发量),Mina和Netty

都是非常好的高并发框架,选择了Netty是考虑到他是一个新生儿,比Mina更有活力和潜力(当然,并不是说Mina

不好),据说两者皆可以达到普通电脑单台并发10万(没亲自尝试过,这数据也是在网上知道的)

客户端:使用Swing技术,选择这个是因为Java用的比较多,上班的时候也没时间来学习新技术,这里主要难点就是界面

的优化,有一大半的时间都花在了优化界面上(为什么这么困难呢:API没有深入去看;百度资料难找),有时

间会重新开贴将我遇到的一些界面优化难点来讲解一下,以便有需要的朋友

数据库:使用的是Oracle数据库(这个没问题,想改就改),这里没有采用任何框架,正好也是自己想复习一下JDBC(框架用多了,基础的东西忘记了)

Tips:1、所有的界面都是重绘过的

2、登陆界面、注册界面、主界面都是继承自JDialog而非JFrame,众所周知,JFrame是用的最多的,但是我们既然

要模仿QQ那就要模仿的像一点儿,QQ登陆以及登陆之后都只有一个系统托盘图标而没有任务栏图标,可能大家

没接触过的话会感到很神奇,JFrame是一定有任务栏图标的,开始尝试着使用过JWindow,但是JWindow有一个

很不好的地方,他在焦点获取方面成很大难题,所以,小小JDialog撑起一片天啊

3、项目中的Dialog是我自己写的一个,很丑,但是用着还可以,基本功能都有(提示框、确认框),而且还可以拓展

为QQ新闻那种右下角提示

登录界面:当时纠结了一下的地方是鼠标进入文字,文字样式变为下划线,因为Java本身没有提供下划线的这种文字样式 (

还是我太笨没找到),所以采用了HTML的语法,毕竟Swing是支持其语法的,至于你们所看到漂亮的按钮和复选框,

那是我自己找的图片(使用Java本身的绘图技术也可以做到,我这里为了图简单,并且性能也会更好一点),大家

在做web项目的时候估计都用过复选框这个控件,它里面可以让你点击复选框后面的文字即可选中复选框,我们这里

没有这个属性,只要自己动手写一下,这样可以有更好的用户体验

仿qq聊天工具设计源码及说明
仿qq聊天工具设计源码及说明

仿qq聊天工具设计源码及说明
仿qq聊天工具设计源码及说明

注册界面:只有界面优化以及按钮滑入出现边框(大家一看就知道),就不多说了

仿qq聊天工具设计源码及说明

Tips:可以看到自定义弹出框,嘿嘿,还没到丑到无法直视的地步

仿qq聊天工具设计源码及说明

主界面:这个界面是使用上中下三部分拼接而成,背景是利用图片将jpanel重绘了,因为jpanel是不可以像jlabel一样

setIcon的,界面优化加布局, 以及Jtree组件的重构,才注册成功的账号拥有默认分组“我的好友”,没有任

何好友

仿qq聊天工具设计源码及说明

Tips:昵称、签名、好友昵称、好友签名;

鼠标滑过分组以及好友节点的时候会呈现黄颜色,而当单击好友节点进行选中的时候则变为橙色,双击则是打开聊天窗口

仿qq聊天工具设计源码及说明

Tips:没获取到焦点的时候是一串提示语,获得焦点之后出现搜索界面(搜索功能没有写,思路可以给大家提供一下,类似

QQ那样出现一个搜索面板覆盖掉下面的区域,从搜索框一下单独写一个面板使用cardlayout布局,我这里也是如此,

当搜索的时候将结果展示到面板上并替换掉当前面板)

仿qq聊天工具设计源码及说明

Tips:对好友分组进行管理,添加、删除、修改以及添加好友到选中分组(默认分组“我的好友”是不允许修改和删除的),如果

添加删除分组则需要通过root根节点来reload以下Jtree以便将新分组将入到列表,因为在我的好友上一层其实还有一个root

节点的,只不过隐藏起来了,而如果是添加删除好友节点,则不需要从root开始,只刷新当前即可

仿qq聊天工具设计源码及说明

Tips:这里我为了好看加入了三个测试(一个太丑了),删除好友功能没有确认是否将你冲对方的好友列表中移除的确认,会自动

将你从对方的好友也移除掉(确认很简单,传送消息的时候在消息体中加入一个确认变量为true或false即可)

仿qq聊天工具设计源码及说明

Tips:群组和最近联系人,滚动条重绘是一大难点兼亮点(个人认为)

仿qq聊天工具设计源码及说明

Tips:添加好友,界面很丑,多多包涵

仿qq聊天工具设计源码及说明

Tips:请求发起者和接受者予以不同的提示

仿qq聊天工具设计源码及说明

Tips:对方同意了之后,自己这里会看到提示,当然,如果你的好友列表是展开状态,不要这个友情提示也无所谓(有朋友可

能再想,为什么不监听其父节点是否展开,如果展开就不管,为展开就将其展开,这样是可以实现的,但是当好友很多

的时候展开需要用到循环,这样效率有些低)

仿qq聊天工具设计源码及说明

Tips:删除分组以及修改分组,当然,删除好友的时候也会有确认提示,以免手误

仿qq聊天工具设计源码及说明

Tips:界面有少许偷懒,大家莫鄙视

仿qq聊天工具设计源码及说明

聊天界面:聊天总体控件使用了JFrame而没有采用JDialog,是因为需要随时打开,所以要在任务栏上可视,模仿了QQ的聊天窗

口合并效果(虽然我这里很丑,但是效果达到了),JFrame里面嵌套了JTabbedPane,我这里引入了一个开源Jar包

WEBLAF里面的WebTabbedPane,因为这个地方的优化耗费了很长时间还没能搞定,总是觉着太丑不好看,所以最

后放弃了(大家莫要鄙视,如果大家有好的方法可以指点我一下)

仿qq聊天工具设计源码及说明

Tips:聊天窗口中难点在于JtextPane的运用(说这个是难点是因为,从jdk1.7开始,竟然没有自动换行这个属性了)、字体样式选

项优化、表情提示框,字体样式选项框就是jcombox的优化,说来惭愧,到现在都没能实现,若有朋友知道如何处理,还请

指点一下

仿qq聊天工具设计源码及说明

Tips:除了截屏和jcombox未能优化之外,其余的都还能简单处理,这里需要注意的是表情的发送,尤其是图文混合的情况下,当时

在这里纠结了很长一段时间

仿qq聊天工具设计源码及说明

  


相关评论
Java毕业设计
    本类推荐
      广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号