聊天软件开发计划书_第1页
聊天软件开发计划书_第2页
聊天软件开发计划书_第3页
聊天软件开发计划书_第4页
聊天软件开发计划书_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学校: 中南南林业科科技大学学组员:赵赵松,刘刘彬,张张天瑞,邝东凡凡,段建建军,欧欧阳益湘湘,彭刚刚强,赵赵雨亭,巫腾飞飞组长:赵赵松副组长:张天瑞瑞年级: 20005级级指导老师师: 辛动军军目 录录面向对象象的分析析需求陈述述系统建摸摸用户服务务模块介介绍管理服务务模块数据库服服务模块块用户服务务模块成员管理理模块管理员服服务模块块用户管理理模块UML系系统建摸摸建立用例例角色的确确定创建用例例建立时序序图协作图的的建立包图UI ppackkageeBusiinesss ppackkagee系统的部部署组件图配置图源代码软件截图图参考文献献组员学习习心得聊天软件件软件工工程计划划书一:面

2、向向对象的的分析1.需需求陈述述(全组组讨论,邝东凡凡,段建建军写讨讨论结果果的 文文档)(1)能能够通过过网站注注册,申申请聊天天软件的的号码跟跟密码。注册成成功之后后保存注注册用户户的,真真实姓名名,所在在学校,宿舍,班级,院系,性别,出生年年月,入入学年份份,个性性签名,(2)下下载一个个客户端端软件,输入帐帐号跟密密码,选选择登陆陆状态(上线,隐身)登录。登录框框消失,显示主主界面。当用户户上线时时,提示示你的好好友,你你加入的的社团等等。并显显示在线线的好友友。当打打开群,社团,学院聊聊天室对对话框之之后显示示在线用用户。当当上线的的好友离离开时,自动将将好友变变为离线线状态。当班级

3、级或群好好友给你你发送信信息,你你又不在在的时候候,服务务器帮你你保存资资料,当当你登陆陆的时候候,将信信息发送送给你。(3)主主界面包包好官方方网站的的超级链链接,用用软件的的吉祥物物显示。主界面显显示用户户自己的的头像,双击进进入用户户“我的世世界”网叶(4)主主界面包包含用户户的好友友框。 每个框包包含有什什么对我我们说组组件,双双击该组组件显示示有什么么对我们们说对话话框,可可以发送送消息给给我们的的服务器器双击好友友框的用用户,显显示好友友聊天对对话框。聊天对对话框,用户可可以输入入信息,接受信信息。可可以发送送接受文文件,支支持语音音视频聊聊天。可可以选择择日常用用语。可可以下载载

4、该好友友的资料料。(5)主主界面包包含社团团框社团框包包含该用用户加入入的社团团,双击一个个社团将将显示社社团对话话框,可可以群聊聊,可以以显示社社团通知知,可以以显示社社团所有有的成员员。如果果社团是是你创的的,该用用户可以以管理社社团,删删除或增增加社团团成员。(6)主主界面包包含学院院聊天框框。学院聊天天室有若若干个学学院。每个学院院有100个聊天天室,每每个聊天天室容纳纳1000人。双双击一个个聊天室室,显示示聊天室室对话窗窗口。可可以发送送文字和和发送图图片。可可以显示示该聊天天室正在在聊天的的成员。可以推推出聊天天室,聊聊天室人人满了可可选择其其他的聊聊天室(7) 主界面面包含班班

5、级框班级框包包含该用用户所属属的班级级双击班级级将显示示一个班班级对话话框,可可以群聊聊,可以以显示班班级成员员,可以以下载班班级资料料,可以以发送日日常用语语。如果果班级由由该用户户创建,用户可可以增加加删除班班级成员员,可以以上传班班级资料料。(8)主主界面包包含查找找按扭,单击查找找按扭显显示查找找对话框框。查找找对话框框隔根据据输入的的号码搜搜索相应应的用户户或群或或院系或或社团。如果对对方同意意,获得得对方发发的信息息,然后后在主界界面显示示该用户户或该群群或者该该院系或或该社团团。如果果对方同同意,则则相应的的刷新主主界面。如我家家A为好好有,他他同意,则在好好友组增增加该好好友。

6、(9)娱娱乐按扭扭,双击击娱乐按按扭,显显示娱乐乐对话框框,娱乐乐对话框框有游戏戏组件。暂时不做做。(10)主界面面包含帮帮助按扭扭,双击击它显示示帮助对对话框,告诉你你怎么使使用这个个软件。主界面有有菜单按按扭。双双击菜单单按扭,显示菜菜单对话话框。*菜单单对话框框有网上上集市按按钮,双双击显示示网上集集市对话话框。用用户可以以通过它它买卖物物品。用户可可把自己己要卖的的或者要要买的东东西发送送到网上上,标好好价格,上传图图片。*菜单单对话框框有查询询按钮,双击显显示查询询对话框框,查询询对话框框包含查查询学生生成绩组组件和查查询图书书馆信息息(可以以续借)和四六六级成绩绩查询。输入你你的学

7、号号,即可可查询你你的成绩绩,如果果有则显显示你的的成绩,没有则则提示没没有。输输入你四四六级的的号码,既可查查询成绩绩。输入入书名选选择要查查的书,输入你你的借书书证号码码跟借书书证密码码可以查查你的借借书信息息,可以以续借。*菜单单对话框框包含创创建按扭扭,拥护护可以创创建社团团,班级级这只针对对对授权权的用户户。设置置社团,班级名名字跟社社团,班班级宣言言。*菜单单对话框框包含设设置按扭扭。双击设置置,显示示设置框框,用户户可以设设置或修修改自己己的 头头像,个个性签名名,真实实姓名,所在学学校,宿宿舍,班班级,院院系,社社团,性性别,出出生年月月,入学学年份,兴趣爱爱好等。*菜单单对话

8、框框包含信信息咨询询按扭。双击显显示信息息咨询网网叶,包包含时尚尚咨询,足球篮篮球信息息快递,人才市市场信息息,兼职职信息,留学信信息。*菜单单对话框框含交友友天地,双击显显示交友友天地网网叶友天天地对话话框包含含爱情呼呼叫组建建,寝室室联谊组组件,同同校约战战组件。*菜单单对话框框面包含含论坛按按扭,双双击显示示论坛网网叶,论论坛包含含文学专专区,学学校风云云榜和注注水专区区。*菜单单对话框框包含我我的仓库库。大小小为100M.。显示用用户现在在的仓库库资料。用户可可以上传传资料,设置权权限供其其他用户户下载可可以删除除资料。*菜单单对话框框包含考考研专区区按扭。*菜单单对话框框有院系系新闻

9、按按扭。双双击显示示院系新新闻网叶叶。软件号码码软件件密码用户个个人资料料 妮称称真实实姓名,所在学学校,宿宿舍,班班级,院院, 系系,性别别,出生生年月,入学年年份,个个性签名名,个人人爱好,头像。信息提示示框提提示信息息登陆状态态登录录框好好友社社团学学院聊天天室对话话框服服务器资料主界面官方网网站吉吉祥物我的世世界 好好友框好好友组件件 好友友个性签签名 好好友名字字 好友友资料框框 有有什么对对我们说说组件有什么么对我们们说对话话框好友友聊天对对话框信息文件日常用用语社团框社社团组件件社团资资料框 社团名名称 社社团号码码 社团团头像社团对对话框社团通通知社社团成员员学院聊天天框聊天室

10、室聊天天室对话话窗口聊天室室成员班级框班班级组件件 班级级资料框框班级对对话框班级成成员班班级资料料查找按扭扭 查找找对话框框娱乐按扭扭娱乐乐对话框框帮助按扭扭帮助助对话框框帮助助信息菜单对话话框菜菜单按扭扭网上集市市按钮网上集集市对话话框物物品价价格图图片查询按钮钮查询询对话框框查询学学生成绩绩组件查查询图书书馆信息息四六级级成绩查查询学学号提示四四六级的的号码要查的的书借借书证号号码借借书证密密码创建按扭扭创建建对话框框群名名字群群宣言 社团,班级名名字社团 班班级宣言言 设置置按扭设置框框信息咨询询按扭信息咨咨询网叶叶时尚尚咨询足球篮篮球信息息快递,人才市市场信息息,兼职职信息,留学信信

11、息交友天地地按扭交友天天地对话话框爱情情呼叫组组件寝室室联谊组组件同同校约战战组件 论坛按按扭我的仓库库按扭我的仓仓库框仓库资资料权权限 考考研专区区按扭 院系新新闻按扭扭二:系统统建摸1:用户户服务模模块 这个个模块提提供了用用户登录录,成员员管理,用户聊聊天,个人设设置,资资料管理理。 用用户登录录包过用用户登录录和用户户退出。成员管管理包过过增加成成员,删删除成员员,退出出群,加加入群。2:管理理员服务务模块这个模块块提供了了用户登登陆,管管理用户户,查询询。用户户登录包包含用户户登录和和用户退退出。管管理用户户包含增增加用户户,删除除用户,更新用用户资料料。查询询用户信信息。3:数据据

12、库服务务模块 这个个模块提提供了自自动更新新数据库库聊天软件系统管理员服务模块数据库服务模块用户服务模块2。1用用户服务务模块用户服务模块资料管理个人设置用户聊天成员管理用户登录用户登录录过程如如下:更新数据库发送到服务器用户的号码跟密码(2)管管理员模模块:发送更新信息给服务器选择成员管理类型更新数据库资料管理理模块更新数据库发送更新信息给服务器选择资料管理类型1.2.2成员员管理模模块:删除群退出群加入群删除成员成员管理增加成员(1)增增加成员员过程:发送到服务器,服务器处理,输入成员号码返回信息给用户。更新数据库删除成员员发送消息给服务器选择要删除的成员更新数据库其余处理理类似,因为赶赶

13、时间,省略了了很多东东西。管理员服服务模块块用户管理查询管理员服务模块管理员登录 1131 查询过程程:显示查询结果查询数据库输入用户号码用户登录录模块跟跟上面一一样的132 用户户管理模模块 :用户管理更新用户资料删除用户增加用户增加用户户过程:更新数据库用户申请号码同意申请删除用户户过程删除该用户更新数据库输入用户号码三:UMML 系系统建摸摸1建立用用例(张张天瑞)1角色的的确定 *用户可可以向服服务器申申请号码码 *有些用用户可以以拥有自自己的资资料仓库库所以,有有三个角角色,一一个是普普通用户户,一个个是VIIP用户户,还有有管理员员2创建用用例(如如图所示示)2建立时时序图(彭刚强

14、强) 11。用户户登录的的时序图图协作图的的建立(刘彬)用户登录录是的协协作图包图,分分为三个个包,UUI ppackkagee ,Bussineess pacckagge , Daatabbasee paackaage31 UII paackaage(巫腾飞飞)3.2BBusiinesss ppackkagee(赵雨雨亭)4.系统统的部署署1组件图图(欧阳阳益湘)2配置图图(赵松松)四:源程程序代码码登录界面面的代码码/*类类名:LLoaddPanne *描描述:登登陆框 *公公司:DDoubbleZZ组合 *作作者:张张天瑞 *版版本:DDoubble 1.00 *创创建时间间:20007

15、.12.6 *最最后修改改时间:20007.112.110*/impoort javva.aawt.*;impoort javva.aawt.eveent.*;impoort javvax.swiing.*;impoort javva.nnet.*;impoort javvax.swiing.eveent.*;impoort javva.iio.*;impoort javva.uutill.*;publlic claass LoaadPaane exttendds JJFraamestaaticc Sttrinng lloaddPasss=nnulll;JLaabell laabell1=nn

16、ew JLaabell(*欢迎迎使用局局域网聊聊天程序序*);JLaabell laabell2=nnew JLaabell(帐帐号:);JTeextFFielld ttf1=neww JTTexttFieeld(15);JLaabell laabell3=nnew JLaabell(密密码:);JPaasswworddFieeld tf22=neew JJPassswoordFFielld(115); JLaabell laabell4=nnew JLaabell(第第一次使使用请先先注册!);JBuuttoon JJButttonn1=nnew JBuuttoon(*登陆陆*);JBuut

17、toon JJButttonn2=nnew JBuuttoon(*注册册*);JBuuttoon JJButttonn3=nnew JBuuttoon(-关于-);/*ppubllic voiid ggetIIpNuum()InnetAAddrresss ipp=InnetAAddrresss.geetLoocallhosst();*/获获得自己己的帐号号pubblicc sttatiic SStriing gettMyNNum() SStriing ip=; Sttrinng iip1=; SStriing ip22=; ttry IInettAdddresss aaddrr = Ineet

18、Adddreess.gettLoccalHHostt(); ipp=adddr.gettHosstAdddreess().ttoSttrinng();/获得本本机IPP ipp=ipp.suubsttrinng(88,ipp.leengtth(); ipp1=iip.ssubsstriing(0,iip.iindeexOff(.); ipp2=iip.ssubsstriing(ip.inddexOOf(.)+1,ip.lenngthh(); ipp=ipp1+iip2; caatchh(Exxcepptioon ee)ee.prrinttStaackTTracce(); reeturrn ii

19、p; pubblicc vooid iniit()Coontaaineer ccp=ggetCConttenttPanne();Tooolkkit kkit=gettTooolkiit(); Diimennsioon wiinSiize=kitt.geetSccreeenSiize(); settBouundss(wiinSiize.widdth/4+1100,winnSizze.hheigght/4+880, /位置 2230,2000); /大小小 cpp.seetLaayouut(nnew FloowLaayouut();cpp.addd(llabeel1);cpp.addd(llabe

20、el2);cpp.addd(ttf1);cpp.addd(llabeel3);cpp.addd(ttf2);cpp.addd(JJButttonn1);cpp.addd(JJButttonn2);cpp.addd(JJButttonn3);cpp.addd(llabeel4);laabell4.ssetBBordder(BorrderrFacctorry.ccreaateLLoweereddBevvelBBordder();/登陆JBButtton11.adddAcctioonLiisteenerr( nnew ActtionnLisstenner() pubblicc vooid actti

21、onnPerrforrmedd(AcctioonEvventt e) /先先从文档档里读取取保存的的密码 tryyFilleInnputtStrreamm inn = neww FiileIInpuutSttreaam(个人信信息.ttxt); ObbjecctInnputtStrreamm ooos = neew OObjeectIInpuutSttreaam(iin);ArrrayLListt arr=(AArraayLiist)ooss.reeadOObjeect(); Strringg sttrInnfo=(Sttrinng )aar.gget(0); looadPPasss=sttr

22、Innfo0;ooss.cllosee();caatchh(Exxcepptioon eexc11)eexc11.prrinttStaackTTracce(); /判判断帐号号与密码码是否匹匹配 if(tf11.geetTeext().eequaals(gettMyNNum() &ttf2.gettTexxt().eqqualls(lloaddPasss) MaiinBaar mmainnBarr=neew MMainnBarr(); OweerPaane.tf33.seetTeext(gettMyNNum();StorreInnforrm.lloaddUseerInnforrm();/读取本

23、本机的用用户信息息 FriienddLisst.lloaddFriienddLisst(); dissposse(); elsse JOpptioonPaane.shoowOpptioonDiialoog(nnulll, 帐号或或密码不不正确!n, nnulll, JJOpttionnPanne.DDEFAAULTT_OPPTIOON, JJOpttionnPanne.IINFOORMAATIOON_MMESSSAGEE, nnulll, nnulll, nnulll); ); /注册册 JJButttonn2.aaddAActiionLListteneer( nnew ActtionnLis

24、stenner() pubblicc vooid acttionnPerrforrmedd(AcctioonEvventt e) Fille ff=neew FFilee(个个人信息息.txxt); if(f.eexissts() JOpptioonPaane.shoowOpptioonDiialoog(nnulll, 大哥,不能多多次注册册!, nnulll, JJOpttionnPanne.DDEFAAULTT_OPPTIOON, JOOptiionPPanee.INNFORRMATTIONN_MEESSAAGE, nnulll, nnulll, nnulll); ellse if(!f.

25、exiistss() OweerPaane.tf33.seetTeext(gettMyNNum(); OweerPaane opDDemoo1=nnew OweerPaane(); ); /关于于 JBuuttoon3.adddActtionnLisstenner( nnew ActtionnLisstenner() pubblicc vooid acttionnPerrforrmedd(AcctioonEvventt e) JOOptiionPPanee.shhowOOptiionDDiallog(nulll, 作者:DouubleeZ组合合n + 版本:Douublee 1.0nn+ 简介

26、:一个基基于局域域网的聊聊天程序序.nn, nnulll, JJOpttionnPanne.DDEFAAULTT_OPPTIOON, JJOpttionnPanne.IINFOORMAATIOON_MMESSSAGEE, nnulll, nnulll, nnulll); );pubblicc sttatiic vvoidd maain(Strringg arggs)LooadPPanee lpp=neew LLoaddPanne();lpp.seetTiitlee(局局域网聊聊天程序序1.00); lp.pacck(); lp.iniit(); lp.settSizze(2230,2000);

27、 lp.settRessizaablee(faalsee); lp.adddWinndowwLisstenner(neww WiindoowAddaptter() pubblicc vooid winndowwCloosinng(WWinddowEEvennt ee) Sysstemm.exxit(0); ); lp.settVissiblle(ttruee); 主主功能实实现代码码/*类类名:MMainnBarr *描描述:搭搭建一个个主框架架 *公公司:DDoubbleZZ组合 *作作者:张张天瑞 *版版本:DDoubble 1.00 *创创建时间间:20007.12.3 *最最后修改改时

28、间:20007.112.110*/ impoort javva.aawt.*;impoort javva.aawt.eveent.*;impoort javvax.swiing.*;impoort javvax.swiing.eveent.*;impoort javvax.swiing.treee.*; impoort javva.iio.*;impoort javva.nnet.*;impoort javva.uutill.*;publlic claass MaiinBaar eexteendss JFFrammeImaageIIconn icc=neew IImaggeIccon(Looa

29、dPPanee4.jjpg);JBuuttoon sshowwPicc=neew JJButttonn(icc);/把把主窗口口分成三三个部分分/定定义两个个端口DattagrramSSockket dsss,dssr;/dsss发送送,dssr接受受staaticc ArrrayyLisst aarraayLss=neew AArraayLiist(2000);/上上部JPaanell p11=neew JJPannel();/JJLabbel labbel=neww JLLabeel(当前用用户);/为当前前用户的的头像prrivaate Imaage imaage;/中中部JPaanel

30、l p22=neew JJPannel(); sttatiic DDefaaulttMuttablleTrreeNNodee rooot=neww DeefauultMMutaableeTreeeNoode(-我我的好友友-); sttatiic DDefaaulttTreeeMoodell trreeMModeel=nnew DeffaulltTrreeMModeel(rroott); sttatiic JJTreee ttreee=neew JJTreee(ttreeeModdel); JBButtton butttonn3=nnew JBuuttoon(添加与与删除好好友);/下下部JP

31、aanell p33=neew JJPannel();JBuuttoon bbuttton11=neew JJButttonn(个个人设置置);JBuuttoon bbuttton22=neew JJButttonn(查查找);pubblicc vooid MaiinBaar(iint s)pubblicc vooid paiint(Graaphiics g) g.draawImmagee(immagee,0,0,55,5,p1);Syysteem.oout.priintlln(画完了了!); /添添加新好好友到列列表中,namme为要要添加的的好友的的名字pubblicc sttatiic

32、vvoidd adddFrriennd(SStriing namme)DeefauultMMutaableeTreeeNoode n=nnew DeffaulltMuutabbleTTreeeNodde(nnamee);trreeMModeel.iinseertNNodeeIntto(nn,rooot,0);/展开子子节点TrreeNNodee rooot=ttreeeModdel.gettPatthTooRooot(nn);TrreePPathh paath=neww TrreePPathh(rooot); trree.makkeViisibble(patth);/删删除好友友/*ppubl

33、lic staaticc vooid dellFriiendd()rooot.remmovee(FrrienndLiist.txtt1.ggetTTextt();*/pubblicc MaainBBar()/ TODDO: Addd yoour codde hheree/初始化化外层窗窗口 supper(局域域网聊天天程序11.0); seetSiize(2000,6000); seetReesizzablle(ffalsse); seetDeefauultCClosseOpperaatioon(JJFraame.DISSPOSSE_OON_CCLOSSE); Tooolkkit kkit=g

34、ettTooolkiit(); Diimennsioon wiinSiize=kitt.geetSccreeenSiize(); seetBooundds(wwinSSizee.wiidthh/4+5000,wiinSiize.heiightt/4-1222, /位位置 2200,6000); /照片地地址 immagee=Tooolkkit.gettDeffaulltTooolkkit().ggetIImagge(S500011183.JPGG); /初始化化两个端端口 trry dsss=neew DDataagraamSoockeet(); dsrr=neew DDataagraamSo

35、ockeet(660000); ccatcch(EExceeptiion e)e.pprinntSttackkTraace(); reeceMMesss();/一一上线就就就打开开一个接接收线程程 seendOOnliineMMesss();/一一上线就就发送一一个上线线的信息息 /-容容器-Coontaaineer ccp=ggetCConttenttPanne();cpp.seetLaayouut(nnew BorrderrLayyoutt();/在第一一层上添添加cpp.addd(pp1,BBordderLLayoout.NORRTH);cpp.addd(pp2,BBordderLLay

36、oout.CENNTERR);cpp.addd(pp3,BBordderLLayoout.SOUUTH);/在第二二层上添添加-上部p11.addd(sshowwPicc);/labbel.settBorrderr(BoordeerFaactoory.creeateeLinneBoordeer(CColoor.LLIGHHT_GGRAYY,2); /-中中部 p22.addd(nnew JSccrolllPaane(treee);p22.addd(bbuttton33);p22.seetBoordeer(BBordderFFacttoryy.crreatteLoowerredBBeveelBo

37、ordeer();/设定界界面风格格-只有三三种/*tryyUUIMaanagger.LoookAnndFeeelIInfoo inffo = UIIMannageer.ggetIInsttallledLLookkAnddFeeels(); /SStriing claassNNamee = inffo22.ggetCClasssNaame();QQuaqquaLLookkAnddFeeel cclasssNaame=neww QuuaquuaLoookAAndFFeell();UUIMaanagger.settLoookAnndFeeel(claassNNamee); /UIIMannagee

38、r.ssetLLookkAnddFeeel(nnew QuaaquaaLoookAnndFeeel();ccatcch(EExceeptiion excc1)*/tryy /UUIMaanagger.settLoookAnndFeeel(UIMManaagerr.geetSyysteemLoookAAndFFeellClaassNNamee(); /UUIMaanagger.settLoookAnndFeeel(jaavaxx.swwingg.pllaf.mettal.MettalLLookkAnddFeeel); /UUIMaanagger.settLoookAnndFeeel(orrg.j

39、jvneet.ssubsstannce.SubbstaanceeLoookAnndFeeel);/caatchh(Exxcepptioon ee)ee.prrinttStaackTTracce();/-下下部p33.addd(bbuttton11);p33.addd(bbuttton22);p33.seetBoordeer(BBordderFFacttoryy.crreatteEttcheedBoordeer();/事件监监听shhowPPic.adddActtionnLisstenner( nnew ActtionnLisstenner() pubblicc vooid acttionnPe

40、rrforrmedd(AcctioonEvventt e) ShoowPiic sshowwPicc=neew SShowwPicc(); Sysstemm.ouut.pprinntlnn(头头像按钮钮!); );/个人设设置 按按钮buuttoon1.adddActtionnLisstenner( nnew ActtionnLisstenner() pubblicc vooid acttionnPerrforrmedd(AcctioonEvventt e) OweerPaane opDDemoo1=nnew OweerPaane(); ); /查找找 bbuttton22.adddAccti

41、oonLiisteenerr( nnew ActtionnLisstenner() pubblicc vooid acttionnPerrforrmedd(AcctioonEvventt e) FinndOffChaat ffoc=neww FiindOOfChhat(); ); /添加加与删除除好友 按钮 bbuttton33.adddAcctioonLiisteenerr( nnew ActtionnLisstenner() pubblicc vooid acttionnPerrforrmedd(AcctioonEvventt e) FriienddLisst ffrieendLListt

42、=neew FFrieendLListt(); ); /添加加用户好好友事件件 ttreee.adddTrreeSSeleectiionLListteneer( neww TrreeSSeleectiionLListteneer() pubblicc vooid vallueCChanngedd(TrreeSSeleectiionEEvennt ee) DeffaulltMuutabbleTTreeeNodde nnodee= (DeefauultMMutaableeTreeeNoode)treee.ggetLLasttSellecttedPPathhCommponnentt(); if(no

43、dde=rooot) Sysstemm.ouut.pprinntlnn(选选中了根根节点); retturnn; elsse Sysstemm.ouut.pprinntlnn(noode); /SStriing nowwNamme=FFrieendLListt.reeFriienddNamme(); Sysstemm.ouut.pprinntlnn(发发起聊天天); ChaatDiialoog ccd=nnew ChaatDiialoog(你正在在与+nodde+聊天); ); /添添加关闭闭窗口时时发送下下线信息息的时间间 thiis.aaddWWinddowLListteneer(nnew

44、 WinndowwAdaapteer() pubblicc vooid winndowwCloosinng(WWinddowEEvennt ee) senndOfffliineMMesss(); ); settVissiblle(ttruee); pubblicc MaainBBar(intt a) puubliic vvoidd reeceMMesss() /首先启启动一个个线程,用来不不断从指指定端口口读取数数据 neew TThreead(neww Ruunnaablee() puubliic vvoidd ruun() ttry bbytee buff=neew bbytee10024

45、; DDataagraamPaackeet ddp1=neww DaataggrammPacckett(buuf,bbuf.lenngthh); SStriing isaadd,nummKeyy; wwhille(ttruee) Sysstemm.ouut.pprinntlnn(数数据已经经接受); dsrr.reeceiive(dp11); Strringg strrArrray=neww Sttrinng 20; issaddd=neew SStriing(dp11.geetDaata(),00,dpp1.ggetLLenggth(); Sysstemm.ouut.pprinntlnn(这

46、这里是MMainnBarr的接收收线程+issaddd); sstrAArraay=ddivMMes(isaadd); Sysstemm.ouut.pprinntlnn(sttrArrrayy0); Sysstemm.ouut.pprinntlnn(sttrArrrayy1); Sysstemm.ouut.pprinntlnn(sttrArrrayy2); /判断断有人加加你为好好友而且且判断自自己的号号码是不不是那么么多 / intt myyNumm=0;/此此处获得得自己的的号码 / if(Inttegeer.pparsseInnt(nnumKKey)=mmyNuum)/此处处暂时不不用

47、/判判断自己己的 号号码 是是否 符符合而且且 判断断是否是是 添加加好友的的信息 if(!iisExxit(strrArrray1)&(Inntegger.parrseIInt(strrArrray2)=IInteegerr.paarseeIntt(LooadPPanee.geetMyyNumm()&(Inntegger.parrseIInt(strrArrray0)=IInteegerr.paarseeIntt(11) /在电电脑右下下角显示示某某添添加你为为好友,调用主主功能界界面的提提示框方方法 TippFraame tf=neww TiipFrramee(); intt opptio

48、on=ttf.ssetTTipFFramme(好友,sttrArrrayy1); Sysstemm.ouut.pprinntlnn(ooptiion is +ooptiion); iff(opptioon=0) ttry /在在此处调调用一个个获得头头像信息息的方法法 Sttrinng ssg=nnew Strringg(); buuf=(+22+LoaadPaane.gettMyNNum()+strrArrray1+OwwerPPanee.tff1.ggetTTextt().geetByytess(); DaataggrammPacckett dpp2=nnew DattagrramPPac

49、kket(buff,buuf.llenggth,dp11.geetAdddreess(),660000); dsss.ssendd(dpp2); FrrienndLiist fl=neww FrrienndLiist(4); fll.uppdatteMaainFFramme(sstrAArraay33,sstrAArraay11); caatchh(Exxcepptioon ee)ee.prrinttStaackTTracce(); /然后将将头像,号码,个性签签名返回回 /判断是是否上线线 eelsee iff(issExiit(sstrAArraay11)&(IInteegerr.paar

50、seeIntt(sttrArrrayy0)=Inttegeer.pparsseInnt(4) /先先搜索自自己的 好友查查看是否否有 该该号码 ,有则则提示 TippFraame tf=neww TiipFrramee(); tf.settTippFraame(上线线,sstrAArraay11); /判判断是否否是离线线信息 eelsee iff(issExiit(sstrAArraay11)&(IInteegerr.paarseeIntt(sttrArrrayy0)=Inttegeer.pparsseInnt(5) TippFraame tf=neww TiipFrramee(); tf.

51、settTippFraame(离线线,sstrAArraay11); /判断是是否是聊聊天消息息 ellse iff(IInteegerr.paarseeIntt(sttrArrrayy2)=Inttegeer.pparsseInnt(LLoaddPanne.ggetMMyNuum()&(IInteegerr.paarseeIntt(sttrArrrayy0)=Inttegeer.pparsseInnt() arrrayyLs.addd(issaddd); /判断断是否是是头像信信息 ellse iff(IInteegerr.paarseeIntt(sttrArrrayy2)=Inttegee

52、r.pparsseInnt(LLoaddPanne.ggetMMyNuum()&(IInteegerr.paarseeIntt(sttrArrrayy0)=Inttegeer.pparsseInnt(2) /根根据头像像信息刷刷新主功功能界面面 FriienddLisst ffrl=neww FrrienndLiist(2); frll.uppdatteMaainFFramme(sstrAArraay33,sstrAArraay11); /-如如果加为为好友则则执行如如上步骤骤- cattch(Exccepttionn e)e.priintSStacckTrracee(); ).staart(

53、); /首首先启动动一个线线程,用用来不断断从指定定端口读读取数据据 ppubllic Strringg diivMees(SStriing sr)/将将受到的的信息分分解 iint k=00; SStriing ttemppStrrArrray=neww Sttrinng220; iint inddex=0; iint h=00; ffor(intt i=0;ii200;i+) if(sr.inddexOOf(+)!=00&ssr.iindeexOff(+)!=-11) temmpSttrArrrayyi=srr.suubsttrinng(00,srr.inndexxOf(+); innde

54、xx=srr.inndexxOf(+); sr=sr.subbstrringg(inndexx+1,sr.lenngthh(); h=ii; elsse iif(ssr.iindeexOff(+)=0) temmpSttrArrrayyi=srr.suubsttrinng(11,2); sr=sr.subbstrringg(3,sr.lenngthh(); inddex=2; temmpSttrArrrayyh+1=sr; retturnn temmpSttrArrrayy; puubliic AArraayLiist gettArrray() rretuurn arrrayLLs; pubb

55、licc vooid senndOnnlinneMeess() /广广播回路路,端口口30001 tryy bytte buuf=nnew bytte1102; buff=(nnew Strringg(+4+LooadPPanee.geetMyyNumm()+334).ggetBBytees(); DattagrramPPackket dpss=neew DDataagraamPaackeet(bbuf,buff.leengtth,IInettAdddresss.ggetBByNaame(2555.2255.2555.2555),60000); dsrr.seend(dpss); cattch

56、(Exccepttionn e)e.priintSStacckTrracee(); /广广播回路路,端口口3000 puubliic vvoidd seendOOffllineeMesss() ttry bytte buuf=nnew bytte110244; buff=(nnew Strringg(+5+118+33).geetByytess(); DattagrramPPackket dpss=neew DDataagraamPaackeet(bbuf,buff.leengtth,IInettAdddresss.ggetBByNaame(2555.2255.2555.2555),60000

57、); dsrr.seend(dpss); cattch(Exccepttionn e)e.priintSStacckTrracee(); /- puubliic bboolleann issExiit(SStriing strr) bboolleann bll=faalsee; ArrrayLListt arry=nnew ArrrayLListt(2000); aryy=FrrienndLiist.aryyOfFFriee(); Sysstemm.ouut.pprinntlnn(arry.ssizee(); Strringg strrtemm=neew SStriing10; forr(in

58、nt ii=0;iaary.sizze();i+) sstrttem=(Sttrinng )aary.gett(i); iif(IInteegerr.paarseeIntt(sttrteem11)=Inntegger.parrseIInt(strr) Sysstemm.ouut.pprinntlnn(sttrteem11); bl=truue; retturnn bll; /- puubliic sstattic vooid remmoveeArrry(iint i) aarraayLss.reemovve(ii); / Sttrinng sstrPPhotto=nnew Strringg(+

59、2+我我方号码码+姓名名+性别别+年龄龄+个签签+头像像) /Strringg sttrMeess=neww Sttrinng(+3+我我方号码码+所发送送的信息息); /SStriing strrOnllinee=neew SStriing(+44+我方号号码); /Strringg sttrOfffliine=neww Sttrinng(+5+我我方号码码); /Sttrinng sstrFFriee=neew SStriing(+11+我方号号码+fiindUUserr()+姓姓名+性性别+年年龄+个个签+头头像+要要将你加加为好友友)(注:由由于代码码太多,只能贴贴少部分分了。赵赵雨汀

60、,刘彬整整理全部部文档。)六:软件件截图七:参考考文献javva语言言导学,Maary Cammpioone网站 HYPERLINK /blog/cns!7dbdf42ee58f4a79!221.entry hhttpp:/pwoosbooy.sspacces.livve.ccom/bloog/ccns!7dbbdf442eee58ff4a779!2221.enttry网站 HYPERLINK /www1/ hhttpp:/m/wwww1/ HYPERLINK / httpp:/m/八:组员员学习心心得我所遇到到的问题题。开始时有有点不知知所措。尤其是是建立模模型图的的时候。我就不不知道为为什

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论