精简QQ项目交流总结

系统 1441 0

      前段时间花了不少时间搞了一个较简单的QQ项目,这里把它发布出来分型给大家学习探讨。

 

      目前为止该QQ项目实现如下功能:添加好友到好友列表,可以把好友在不同分类中移动,同时支持离线查找添加好友,离线更换头像,离线发送消息,保存所有好友聊天记录,发送窗口抖动,查看对方信息,更改/添加信息等。

 

      先来看一下项目的部分截图效果

 


                                       精简QQ项目交流总结

            这个是登陆界面,腾讯QQ的号码通常是9位,这个版本的QQ号码是5位,也就是说注册的时候只能注册5位号码,超过5位就会提示出错

            
                                                    精简QQ项目交流总结

                                                                  这是注册界面

 
                                     精简QQ项目交流总结

            如果已经登陆的一个账号,那么再用此账号进行登录,将会出现如下提示,防止重复登录

            
 
             精简QQ项目交流总结                精简QQ项目交流总结
 

              登陆成功后显示如上界面,可以看到每个分类下的好友列表,这里只添加了两个作为测试。绿色线框内显示为昵称和状态,绿色线框右边是当前四个分类(我的好友,同学,亲人,陌生人)当前在线人数,机制为一个线程,当有成员上线或下线,线程内方法收到通知并且重新绘制当前面板,实时统计在线人数。消息盒内存放当前未读的消息,可以是在线好友发送的消息,也可以是离线好友发送的消息,当点击时,会弹出对话框与之进行会话。下面的五个功能按钮分别是查找好友,个人资料,聊天记录,修改头像,用户注销。

             
 
精简QQ项目交流总结        精简QQ项目交流总结
 
       查找好友时,会出现如上界面。当输入QQ号码进行查找的时候,未找到将会提示“未找到好友”,找到后右边的添加按钮会被激活,如果此人已在好友列表中,则无法添加,反之可以添加对方为好友。

          
 
            精简QQ项目交流总结

             更换头像界面

             
                                  精简QQ项目交流总结


                    精简QQ项目交流总结
 

          聊天窗口,可以更改聊天字体大小,颜色,发送抖动窗口,查看聊天记录。
   

          难点:在项目中,我实际体会到很多难点,下面举一些例子

          1首先生成好友列表是一个难点,需要构造自己的JTree,订制自己的渲染器,重写里面的方法,记得当时为了做这一个功能还专门看了一本书:《Swing高级编程》 
          2当你要和好友聊天的时候,必须保证一个好友只有一个聊天窗口,而且这么多窗口之间不能出现混乱,具有一定的处理难度。

          3在做的过程中最难的莫过于离线处理的情况。比如现在A要添加B为好友,但是B不在线,A查找到B并且发出添加好友的请求。这时,又有很多情况。第一种情况,A发出请求后一直未下线,等待B上线,B上线后可以同意A的好友请求也可以不同意;第二种情况,A发出请求后下线,B上线,B可以同意A的请求也可以不同意。所以要想做得细致这些问题都要考虑到,因为最难的就是业务逻辑。我体会到把一件事情做好的品质是认真,细致。此时服务器端就会有很多容器,它们负责接收不同的消息对象,而且要做到不能混乱。哪些是离线消息,哪些是在线消息,都要管理好。

          4保存所有好友的聊天记录也不是一件容易的事情,其实最核心的是考虑到一个map数据结构,围绕它做文章,key和value分别对应QQ号码(唯一)和聊天记录(多余200条自动刷新)。

          5把好友在不同分类中移动有一定难度

   

           不足:

           1未完成视频,语音等功能,难度不大,有待完成。

           2不能动态增加好友分类,难度较大。

           3未完成自定义上传头像图片的功能,只允许使用系统订制的。

           4当时未掌握设计模式,代码结构较为混乱。

 

 

         包结构
                        精简QQ项目交流总结
 

 

 

 

 

精简QQ项目交流总结


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论