大寨QQ——洽 洽 谷 V1.0.版
经过半个多月的努力,仿QQ的聊天系统—————洽洽谷第一版本终于竣工啦!
开发者:晓盼和本人
晓盼负责服务器端的开发,我负责客户端的开发
项目介绍:该版本能实现基本的文本聊天,也能实现类似QQ一样的表情发送,其他的功能模块还没实现,就暂时只能聊天,在以后的学习中我们会继续开发。
技术难点:
1.关注我的博客:山寨QQ项目窗口处理
http://1273646752-qq-com.iteye.com/blog/1143886
2.关注我的博客:关于下拉框列表监听的最新发现
http://1273646752-qq-com.iteye.com/admin/blogs/1145055
3.关注我的博客:我的QQ对JTextPane组件的使用
http://1273646752-qq-com.iteye.com/blog/1151709
4.qq的表情框中的105个表情是定义了105个不同的表情代码写入文件中的,当点击表情按钮时,会读取map中的表情代码放入map中,用的时候,将其转换成对应的表情对象。感觉:2个字 ————"复杂",很多细节都会出错。
5.解析消息时,和以前的原理差不多,但有点改进。这个方法是晓盼写的,我做了些改进,下面就是最终的结果:
public void jiexi(ComFrame ci, String msg){ if(msg!=null){ int start = msg.indexOf("<p>"); start+=3; int end = msg.indexOf("</p>"); if(start==-1||end==-1){ ci.dealFaceMsg(ci.t1,msg.substring(0, msg.length())+"\r\n"); //调用处理这条被截取的消息段的方法,这个方法就是要将该消息段加到显示消息的JTextPane上,(下同) }else{ ci.dealFaceMsg(ci.t1,msg.substring(0, start-3));//调用处理这条被截取的消息段的方法······ String imageName=msg.substring(start, end);//图片名字 ci.t1.insertIcon(Face.getIon(imageName));//将图片对象添加到ComFrame线程的JTextPane对象t1上 msg = msg.substring(end+4, msg.length());//截取已经被取到的消息段 jiexi(ci,msg); } } }
项目开发过程感悟:
在这个酷暑的长沙学习还真的是有点难度,每天上午7点起来看一会儿书,到了8点半我就和室友玲玲准备去蓝杰了。一出门,那太阳就把我晒的浑身没力。中午一般只睡40——60分钟,而且,由于热的原因,睡眠质量真的好差。但不睡又不行啊!(说实话,我现在就好想睡····)
晓盼和我在确定开发怎么样的一个项目后,就开始着手开发了。首先,我们计划了我们将要实现的功能,做什么事。
再次,是写一个协议,一个客户端和服务器端遵守的共同规则。这个工作是晓盼做的,做完后,我再提意见,一起讨论。在晓盼协议的时候,我就开始写简单的客户端的界面了,做项目嘛,就要做好,不求最好,但求更好!
在定好协议、分清工作后,我们就开始构架各自的程序模块。
晓盼的服务器端写好后,他就开始想表情功能实现的问题了。帮助我在组件上添加表情。想到这里,我要讲一下,晓盼是一个很有想法、思维很开阔的人。在 我写客户端时,帮了我很大的忙,我不喜欢说多余的话,我只有5个字对他说:非常谢谢你!
我也喜欢用写新鲜的东西,但不会应用网络资源,好的垃圾资料,每次都找的我好烦的。这点,晓盼比我强多了。而且我也不会规划自己的类,总是写的需要的时候,才建一个新类。在今后, 还要改进,就像建房子一样,先做全面的规划和部署,再打地基,再砌墙·····
关于服务器端的解说,大家可以去我的组组长晓盼的博客上看看,地址是:http://957140574-qq-com.iteye.com/blog/1153719
下面是一些我们这个项目的效果图:
洽洽谷登录界面:
洽洽谷登录成功后进入的洽洽谷界面:
图形右面的1234是登录的用户自己,
好友列表下面会显示谁上线和谁下线的信息哦!
聊天界面:
那个发送表情哦!群聊界面因也一样
群聊界面:
现在,洽洽谷的功能 还不够完善,晓盼和我还会 继 续 努 力 !
道歉:
各位读者朋友,很抱歉!
之前上传的客户端源代码有一点点的问题,现在的客户端.rar是刚刚测试成功的源代码!
在此,非常感谢查看本篇文章的读者和下载源代码的朋友,欢迎各位有兴趣的朋友阅读本篇博客、下载源代码!
还是女生 赞6个