聊天軟件開(kāi)發(fā)計(jì)劃書_第1頁(yè)
聊天軟件開(kāi)發(fā)計(jì)劃書_第2頁(yè)
聊天軟件開(kāi)發(fā)計(jì)劃書_第3頁(yè)
聊天軟件開(kāi)發(fā)計(jì)劃書_第4頁(yè)
聊天軟件開(kāi)發(fā)計(jì)劃書_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué)校: 中南南林業(yè)科科技大學(xué)學(xué)組員:趙趙松,劉劉彬,張張?zhí)烊穑棖|凡凡,段建建軍,歐歐陽(yáng)益湘湘,彭剛剛強(qiáng),趙趙雨亭,巫騰飛飛組長(zhǎng):趙趙松副組長(zhǎng):張?zhí)烊鹑鹉昙?jí): 20005級(jí)級(jí)指導(dǎo)老師師: 辛動(dòng)軍軍目 錄錄面向?qū)ο笙蟮姆治鑫鲂枨箨愂鍪鱿到y(tǒng)建摸摸用戶服務(wù)務(wù)模塊介介紹管理服務(wù)務(wù)模塊數(shù)據(jù)庫(kù)服服務(wù)模塊塊用戶服務(wù)務(wù)模塊成員管理理模塊管理員服服務(wù)模塊塊用戶管理理模塊UML系系統(tǒng)建摸摸建立用例例角色的確確定創(chuàng)建用例例建立時(shí)序序圖協(xié)作圖的的建立包圖UI ppackkageeBusiinesss ppackkagee系統(tǒng)的部部署組件圖配置圖源代碼軟件截圖圖參考文獻(xiàn)獻(xiàn)組員學(xué)習(xí)習(xí)心得聊天軟件件軟件工工程計(jì)劃劃書一:面

2、向向?qū)ο蟮牡姆治?.需需求陳述述(全組組討論,鄺東凡凡,段建建軍寫討討論結(jié)果果的 文文檔)(1)能能夠通過(guò)過(guò)網(wǎng)站注注冊(cè),申申請(qǐng)聊天天軟件的的號(hào)碼跟跟密碼。注冊(cè)成成功之后后保存注注冊(cè)用戶戶的,真真實(shí)姓名名,所在在學(xué)校,宿舍,班級(jí),院系,性別,出生年年月,入入學(xué)年份份,個(gè)性性簽名,(2)下下載一個(gè)個(gè)客戶端端軟件,輸入帳帳號(hào)跟密密碼,選選擇登陸陸狀態(tài)(上線,隱身)登錄。登錄框框消失,顯示主主界面。當(dāng)用戶戶上線時(shí)時(shí),提示示你的好好友,你你加入的的社團(tuán)等等。并顯顯示在線線的好友友。當(dāng)打打開(kāi)群,社團(tuán),學(xué)院聊聊天室對(duì)對(duì)話框之之后顯示示在線用用戶。當(dāng)當(dāng)上線的的好友離離開(kāi)時(shí),自動(dòng)將將好友變變?yōu)殡x線線狀態(tài)。當(dāng)班級(jí)

3、級(jí)或群好好友給你你發(fā)送信信息,你你又不在在的時(shí)候候,服務(wù)務(wù)器幫你你保存資資料,當(dāng)當(dāng)你登陸陸的時(shí)候候,將信信息發(fā)送送給你。(3)主主界面包包好官方方網(wǎng)站的的超級(jí)鏈鏈接,用用軟件的的吉祥物物顯示。主界面顯顯示用戶戶自己的的頭像,雙擊進(jìn)進(jìn)入用戶戶“我的世世界”網(wǎng)葉(4)主主界面包包含用戶戶的好友友框。 每個(gè)框包包含有什什么對(duì)我我們說(shuō)組組件,雙雙擊該組組件顯示示有什么么對(duì)我們們說(shuō)對(duì)話話框,可可以發(fā)送送消息給給我們的的服務(wù)器器雙擊好友友框的用用戶,顯顯示好友友聊天對(duì)對(duì)話框。聊天對(duì)對(duì)話框,用戶可可以輸入入信息,接受信信息。可可以發(fā)送送接受文文件,支支持語(yǔ)音音視頻聊聊天。可可以選擇擇日常用用語(yǔ)。可可以下載載

4、該好友友的資料料。(5)主主界面包包含社團(tuán)團(tuán)框社團(tuán)框包包含該用用戶加入入的社團(tuán)團(tuán),雙擊一個(gè)個(gè)社團(tuán)將將顯示社社團(tuán)對(duì)話話框,可可以群聊聊,可以以顯示社社團(tuán)通知知,可以以顯示社社團(tuán)所有有的成員員。如果果社團(tuán)是是你創(chuàng)的的,該用用戶可以以管理社社團(tuán),刪刪除或增增加社團(tuán)團(tuán)成員。(6)主主界面包包含學(xué)院院聊天框框。學(xué)院聊天天室有若若干個(gè)學(xué)學(xué)院。每個(gè)學(xué)院院有100個(gè)聊天天室,每每個(gè)聊天天室容納納1000人。雙雙擊一個(gè)個(gè)聊天室室,顯示示聊天室室對(duì)話窗窗口。可可以發(fā)送送文字和和發(fā)送圖圖片。可可以顯示示該聊天天室正在在聊天的的成員。可以推推出聊天天室,聊聊天室人人滿了可可選擇其其他的聊聊天室(7) 主界面面包含班班

5、級(jí)框班級(jí)框包包含該用用戶所屬屬的班級(jí)級(jí)雙擊班級(jí)級(jí)將顯示示一個(gè)班班級(jí)對(duì)話話框,可可以群聊聊,可以以顯示班班級(jí)成員員,可以以下載班班級(jí)資料料,可以以發(fā)送日日常用語(yǔ)語(yǔ)。如果果班級(jí)由由該用戶戶創(chuàng)建,用戶可可以增加加刪除班班級(jí)成員員,可以以上傳班班級(jí)資料料。(8)主主界面包包含查找找按扭,單擊查找找按扭顯顯示查找找對(duì)話框框。查找找對(duì)話框框隔根據(jù)據(jù)輸入的的號(hào)碼搜搜索相應(yīng)應(yīng)的用戶戶或群或或院系或或社團(tuán)。如果對(duì)對(duì)方同意意,獲得得對(duì)方發(fā)發(fā)的信息息,然后后在主界界面顯示示該用戶戶或該群群或者該該院系或或該社團(tuán)團(tuán)。如果果對(duì)方同同意,則則相應(yīng)的的刷新主主界面。如我家家A為好好有,他他同意,則在好好友組增增加該好好友。

6、(9)娛娛樂(lè)按扭扭,雙擊擊娛樂(lè)按按扭,顯顯示娛樂(lè)樂(lè)對(duì)話框框,娛樂(lè)樂(lè)對(duì)話框框有游戲戲組件。暫時(shí)不做做。(10)主界面面包含幫幫助按扭扭,雙擊擊它顯示示幫助對(duì)對(duì)話框,告訴你你怎么使使用這個(gè)個(gè)軟件。主界面有有菜單按按扭。雙雙擊菜單單按扭,顯示菜菜單對(duì)話話框。*菜單單對(duì)話框框有網(wǎng)上上集市按按鈕,雙雙擊顯示示網(wǎng)上集集市對(duì)話話框。用用戶可以以通過(guò)它它買賣物物品。用戶可可把自己己要賣的的或者要要買的東東西發(fā)送送到網(wǎng)上上,標(biāo)好好價(jià)格,上傳圖圖片。*菜單單對(duì)話框框有查詢?cè)儼粹o,雙擊顯顯示查詢?cè)儗?duì)話框框,查詢?cè)儗?duì)話框框包含查查詢學(xué)生生成績(jī)組組件和查查詢圖書書館信息息(可以以續(xù)借)和四六六級(jí)成績(jī)績(jī)查詢。輸入你你的學(xué)

7、號(hào)號(hào),即可可查詢你你的成績(jī)績(jī),如果果有則顯顯示你的的成績(jī),沒(méi)有則則提示沒(méi)沒(méi)有。輸輸入你四四六級(jí)的的號(hào)碼,既可查查詢成績(jī)績(jī)。輸入入書名選選擇要查查的書,輸入你你的借書書證號(hào)碼碼跟借書書證密碼碼可以查查你的借借書信息息,可以以續(xù)借。*菜單單對(duì)話框框包含創(chuàng)創(chuàng)建按扭扭,擁護(hù)護(hù)可以創(chuàng)創(chuàng)建社團(tuán)團(tuán),班級(jí)級(jí)這只針對(duì)對(duì)對(duì)授權(quán)權(quán)的用戶戶。設(shè)置置社團(tuán),班級(jí)名名字跟社社團(tuán),班班級(jí)宣言言。*菜單單對(duì)話框框包含設(shè)設(shè)置按扭扭。雙擊設(shè)置置,顯示示設(shè)置框框,用戶戶可以設(shè)設(shè)置或修修改自己己的 頭頭像,個(gè)個(gè)性簽名名,真實(shí)實(shí)姓名,所在學(xué)學(xué)校,宿宿舍,班班級(jí),院院系,社社團(tuán),性性別,出出生年月月,入學(xué)學(xué)年份,興趣愛(ài)愛(ài)好等。*菜單單對(duì)話

8、框框包含信信息咨詢?cè)儼磁ぁkp擊顯顯示信息息咨詢網(wǎng)網(wǎng)葉,包包含時(shí)尚尚咨詢,足球籃籃球信息息快遞,人才市市場(chǎng)信息息,兼職職信息,留學(xué)信信息。*菜單單對(duì)話框框含交友友天地,雙擊顯顯示交友友天地網(wǎng)網(wǎng)葉友天天地對(duì)話話框包含含愛(ài)情呼呼叫組建建,寢室室聯(lián)誼組組件,同同校約戰(zhàn)戰(zhàn)組件。*菜單單對(duì)話框框面包含含論壇按按扭,雙雙擊顯示示論壇網(wǎng)網(wǎng)葉,論論壇包含含文學(xué)專專區(qū),學(xué)學(xué)校風(fēng)云云榜和注注水專區(qū)區(qū)。*菜單單對(duì)話框框包含我我的倉(cāng)庫(kù)庫(kù)。大小小為100M.。顯示用用戶現(xiàn)在在的倉(cāng)庫(kù)庫(kù)資料。用戶可可以上傳傳資料,設(shè)置權(quán)權(quán)限供其其他用戶戶下載可可以刪除除資料。*菜單單對(duì)話框框包含考考研專區(qū)區(qū)按扭。*菜單單對(duì)話框框有院系系新聞

9、按按扭。雙雙擊顯示示院系新新聞網(wǎng)葉葉。軟件號(hào)碼碼軟件件密碼用戶個(gè)個(gè)人資料料 妮稱稱真實(shí)實(shí)姓名,所在學(xué)學(xué)校,宿宿舍,班班級(jí),院院, 系系,性別別,出生生年月,入學(xué)年年份,個(gè)個(gè)性簽名名,個(gè)人人愛(ài)好,頭像。信息提示示框提提示信息息登陸狀態(tài)態(tài)登錄錄框好好友社社團(tuán)學(xué)學(xué)院聊天天室對(duì)話話框服服務(wù)器資料主界面官方網(wǎng)網(wǎng)站吉吉祥物我的世世界 好好友框好好友組件件 好友友個(gè)性簽簽名 好好友名字字 好友友資料框框 有有什么對(duì)對(duì)我們說(shuō)說(shuō)組件有什么么對(duì)我們們說(shuō)對(duì)話話框好友友聊天對(duì)對(duì)話框信息文件日常用用語(yǔ)社團(tuán)框社社團(tuán)組件件社團(tuán)資資料框 社團(tuán)名名稱 社社團(tuán)號(hào)碼碼 社團(tuán)團(tuán)頭像社團(tuán)對(duì)對(duì)話框社團(tuán)通通知社社團(tuán)成員員學(xué)院聊天天框聊天室

10、室聊天天室對(duì)話話窗口聊天室室成員班級(jí)框班班級(jí)組件件 班級(jí)級(jí)資料框框班級(jí)對(duì)對(duì)話框班級(jí)成成員班班級(jí)資料料查找按扭扭 查找找對(duì)話框框娛樂(lè)按扭扭娛樂(lè)樂(lè)對(duì)話框框幫助按扭扭幫助助對(duì)話框框幫助助信息菜單對(duì)話話框菜菜單按扭扭網(wǎng)上集市市按鈕網(wǎng)上集集市對(duì)話話框物物品價(jià)價(jià)格圖圖片查詢按鈕鈕查詢?cè)儗?duì)話框框查詢學(xué)學(xué)生成績(jī)績(jī)組件查查詢圖書書館信息息四六級(jí)級(jí)成績(jī)查查詢學(xué)學(xué)號(hào)提示四四六級(jí)的的號(hào)碼要查的的書借借書證號(hào)號(hào)碼借借書證密密碼創(chuàng)建按扭扭創(chuàng)建建對(duì)話框框群名名字群群宣言 社團(tuán),班級(jí)名名字社團(tuán) 班班級(jí)宣言言 設(shè)置置按扭設(shè)置框框信息咨詢?cè)儼磁ば畔⒆勺稍兙W(wǎng)葉葉時(shí)尚尚咨詢足球籃籃球信息息快遞,人才市市場(chǎng)信息息,兼職職信息,留學(xué)信信

11、息交友天地地按扭交友天天地對(duì)話話框愛(ài)情情呼叫組組件寢室室聯(lián)誼組組件同同校約戰(zhàn)戰(zhàn)組件 論壇按按扭我的倉(cāng)庫(kù)庫(kù)按扭我的倉(cāng)倉(cāng)庫(kù)框倉(cāng)庫(kù)資資料權(quán)權(quán)限 考考研專區(qū)區(qū)按扭 院系新新聞按扭扭二:系統(tǒng)統(tǒng)建摸1:用戶戶服務(wù)模模塊 這個(gè)個(gè)模塊提提供了用用戶登錄錄,成員員管理,用戶聊聊天,個(gè)人設(shè)設(shè)置,資資料管理理。 用用戶登錄錄包過(guò)用用戶登錄錄和用戶戶退出。成員管管理包過(guò)過(guò)增加成成員,刪刪除成員員,退出出群,加加入群。2:管理理員服務(wù)務(wù)模塊這個(gè)模塊塊提供了了用戶登登陸,管管理用戶戶,查詢?cè)儭S脩魬舻卿洶脩魬舻卿浐秃陀脩敉送顺觥9芄芾碛脩魬舭鲈黾佑脩魬簦瑒h除除用戶,更新用用戶資料料。查詢?cè)冇脩粜判畔ⅰ?:數(shù)據(jù)據(jù)

12、庫(kù)服務(wù)務(wù)模塊 這個(gè)個(gè)模塊提提供了自自動(dòng)更新新數(shù)據(jù)庫(kù)庫(kù)聊天軟件系統(tǒng)管理員服務(wù)模塊數(shù)據(jù)庫(kù)服務(wù)模塊用戶服務(wù)模塊2。1用用戶服務(wù)務(wù)模塊用戶服務(wù)模塊資料管理個(gè)人設(shè)置用戶聊天成員管理用戶登錄用戶登錄錄過(guò)程如如下:更新數(shù)據(jù)庫(kù)發(fā)送到服務(wù)器用戶的號(hào)碼跟密碼(2)管管理員模模塊:發(fā)送更新信息給服務(wù)器選擇成員管理類型更新數(shù)據(jù)庫(kù)資料管理理模塊更新數(shù)據(jù)庫(kù)發(fā)送更新信息給服務(wù)器選擇資料管理類型1.2.2成員員管理模模塊:刪除群退出群加入群刪除成員成員管理增加成員(1)增增加成員員過(guò)程:發(fā)送到服務(wù)器,服務(wù)器處理,輸入成員號(hào)碼返回信息給用戶。更新數(shù)據(jù)庫(kù)刪除成員員發(fā)送消息給服務(wù)器選擇要?jiǎng)h除的成員更新數(shù)據(jù)庫(kù)其余處理理類似,因?yàn)橼s趕

13、時(shí)間,省略了了很多東東西。管理員服服務(wù)模塊塊用戶管理查詢管理員服務(wù)模塊管理員登錄 1131 查詢過(guò)程程:顯示查詢結(jié)果查詢數(shù)據(jù)庫(kù)輸入用戶號(hào)碼用戶登錄錄模塊跟跟上面一一樣的132 用戶戶管理模模塊 :用戶管理更新用戶資料刪除用戶增加用戶增加用戶戶過(guò)程:更新數(shù)據(jù)庫(kù)用戶申請(qǐng)?zhí)柎a同意申請(qǐng)刪除用戶戶過(guò)程刪除該用戶更新數(shù)據(jù)庫(kù)輸入用戶號(hào)碼三:UMML 系系統(tǒng)建摸摸1建立用用例(張張?zhí)烊穑?角色的的確定 *用戶可可以向服服務(wù)器申申請(qǐng)?zhí)柎a碼 *有些用用戶可以以擁有自自己的資資料倉(cāng)庫(kù)庫(kù)所以,有有三個(gè)角角色,一一個(gè)是普普通用戶戶,一個(gè)個(gè)是VIIP用戶戶,還有有管理員員2創(chuàng)建用用例(如如圖所示示)2建立時(shí)時(shí)序圖(彭剛強(qiáng)

14、強(qiáng)) 11。用戶戶登錄的的時(shí)序圖圖協(xié)作圖的的建立(劉彬)用戶登錄錄是的協(xié)協(xié)作圖包圖,分分為三個(gè)個(gè)包,UUI ppackkagee ,Bussineess pacckagge , Daatabbasee paackaage31 UII paackaage(巫騰飛飛)3.2BBusiinesss ppackkagee(趙雨雨亭)4.系統(tǒng)統(tǒng)的部署署1組件圖圖(歐陽(yáng)陽(yáng)益湘)2配置圖圖(趙松松)四:源程程序代碼碼登錄界面面的代碼碼/*類類名:LLoaddPanne *描描述:登登陸框 *公公司:DDoubbleZZ組合 *作作者:張張?zhí)烊?*版版本:DDoubble 1.00 *創(chuàng)創(chuàng)建時(shí)間間:20007

15、.12.6 *最最后修改改時(shí)間: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(*歡迎迎使用局局域網(wǎng)聊聊天程序序*);JLaabell laabell2=nnew JLaabell(帳帳號(hào):);JTeextFFielld ttf1=neww JTTexttFieeld(15);JLaabell laabell3=nnew JLaabell(密密碼:);JPaasswworddFieeld tf22=neew JJPassswoordFFielld(115); JLaabell laabell4=nnew JLaabell(第第一次使使用請(qǐng)先先注冊(cè)!);JBuuttoon JJButttonn1=nnew JBuuttoon(*登陸陸*);JBuut

17、toon JJButttonn2=nnew JBuuttoon(*注冊(cè)冊(cè)*);JBuuttoon JJButttonn3=nnew JBuuttoon(-關(guān)于-);/*ppubllic voiid ggetIIpNuum()InnetAAddrresss ipp=InnetAAddrresss.geetLoocallhosst();*/獲獲得自己己的帳號(hào)號(hào)pubblicc sttatiic SStriing gettMyNNum() SStriing ip=; Sttrinng iip1=; SStriing ip22=; ttry IInettAdddresss aaddrr = Ineet

18、Adddreess.gettLoccalHHostt(); ipp=adddr.gettHosstAdddreess().ttoSttrinng();/獲得本本機(jī)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(個(gè)人信信息.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(); /判判斷帳號(hào)號(hào)與密碼碼是否匹匹配 if(tf11.geetTeext().eequaals(gettMyNNum() &ttf2.gettTexxt().eqqualls(lloaddPasss) MaiinBaar mmainnBarr=neew MMainnBarr(); OweerPaane.tf33.seetTeext(gettMyNNum();StorreInnforrm.lloaddUseerInnforrm();/讀取本

23、本機(jī)的用用戶信息息 FriienddLisst.lloaddFriienddLisst(); dissposse(); elsse JOpptioonPaane.shoowOpptioonDiialoog(nnulll, 帳號(hào)或或密碼不不正確!n, nnulll, JJOpttionnPanne.DDEFAAULTT_OPPTIOON, JJOpttionnPanne.IINFOORMAATIOON_MMESSSAGEE, nnulll, nnulll, nnulll); ); /注冊(cè)冊(cè) JJButttonn2.aaddAActiionLListteneer( nnew ActtionnLis

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

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

26、:一個(gè)基基于局域域網(wǎng)的聊聊天程序序.nn, nnulll, JJOpttionnPanne.DDEFAAULTT_OPPTIOON, JJOpttionnPanne.IINFOORMAATIOON_MMESSSAGEE, nnulll, nnulll, nnulll); );pubblicc sttatiic vvoidd maain(Strringg arggs)LooadPPanee lpp=neew LLoaddPanne();lpp.seetTiitlee(局局域網(wǎng)聊聊天程序序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); 主主功能實(shí)實(shí)現(xiàn)代碼碼/*類類名:MMainnBarr *描描述:搭搭建一個(gè)個(gè)主框架架 *公公司:DDoubbleZZ組合 *作作者:張張?zhí)烊?*版版本:DDoubble 1.00 *創(chuàng)創(chuàng)建時(shí)間間:20007.12.3 *最最后修改改時(shí)

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);/把把主窗口口分成三三個(gè)部分分/定定義兩個(gè)個(gè)端口DattagrramSSockket dsss,dssr;/dsss發(fā)送送,dssr接受受staaticc ArrrayyLisst aarraayLss=neew AArraayLiist(2000);/上上部JPaanell p11=neew JJPannel();/JJLabbel labbel=neww JLLabeel(當(dāng)前用用戶);/為當(dāng)前前用戶的的頭像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(個(gè)個(gè)人設(shè)置置);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);/展開(kāi)子子節(jié)點(diǎn)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(局域域網(wǎng)聊天天程序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); /初始化化兩個(gè)端端口 trry dsss=neew DDataagraamSoockeet(); dsrr=neew DDataagraamSo

35、ockeet(660000); ccatcch(EExceeptiion e)e.pprinntSttackkTraace(); reeceMMesss();/一一上線就就就打開(kāi)開(kāi)一個(gè)接接收線程程 seendOOnliineMMesss();/一一上線就就發(fā)送一一個(gè)上線線的信息息 /-容容器-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();/設(shè)定界界面風(fēng)格格-只有三三種/*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();/事件監(jiān)監(jiān)聽(tīng)shhowPPic.adddActtionnLisstenner( nnew ActtionnLisstenner() pubblicc vooid acttionnPe

40、rrforrmedd(AcctioonEvventt e) ShoowPiic sshowwPicc=neew SShowwPicc(); Sysstemm.ouut.pprinntlnn(頭頭像按鈕鈕!); );/個(gè)人設(shè)設(shè)置 按按鈕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(選選中了根根節(jié)點(diǎn)); retturnn; elsse Sysstemm.ouut.pprinntlnn(noode); /SStriing nowwNamme=FFrieendLListt.reeFriienddNamme(); Sysstemm.ouut.pprinntlnn(發(fā)發(fā)起聊天天); ChaatDiialoog ccd=nnew ChaatDiialoog(你正在在與+nodde+聊天); ); /添添加關(guān)閉閉窗口時(shí)時(shí)發(fā)送下下線信息息的時(shí)間間 thiis.aaddWWinddowLListteneer(nnew

44、 WinndowwAdaapteer() pubblicc vooid winndowwCloosinng(WWinddowEEvennt ee) senndOfffliineMMesss(); ); settVissiblle(ttruee); pubblicc MaainBBar(intt a) puubliic vvoidd reeceMMesss() /首先啟啟動(dòng)一個(gè)個(gè)線程,用來(lái)不不斷從指指定端口口讀取數(shù)數(shù)據(jù) 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(數(shù)數(shù)據(jù)已經(jīng)經(jīng)接受); 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); /判斷斷有人加加你為好好友而且且判斷自自己的號(hào)號(hào)碼是不不是那么么多 / intt myyNumm=0;/此此處獲得得自己的的號(hào)碼 / if(Inttegeer.pparsseInnt(nnumKKey)=mmyNuum)/此處處暫時(shí)不不用

47、/判判斷自己己的 號(hào)號(hào)碼 是是否 符符合而且且 判斷斷是否是是 添加加好友的的信息 if(!iisExxit(strrArrray1)&(Inntegger.parrseIInt(strrArrray2)=IInteegerr.paarseeIntt(LooadPPanee.geetMyyNumm()&(Inntegger.parrseIInt(strrArrray0)=IInteegerr.paarseeIntt(11) /在電電腦右下下角顯示示某某添添加你為為好友,調(diào)用主主功能界界面的提提示框方方法 TippFraame tf=neww TiipFrramee(); intt opptio

48、on=ttf.ssetTTipFFramme(好友,sttrArrrayy1); Sysstemm.ouut.pprinntlnn(ooptiion is +ooptiion); iff(opptioon=0) ttry /在在此處調(diào)調(diào)用一個(gè)個(gè)獲得頭頭像信息息的方法法 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(); /然后將將頭像,號(hào)碼,個(gè)性簽簽名返回回 /判斷是是否上線線 eelsee iff(issExiit(sstrAArraay11)&(IInteegerr.paar

50、seeIntt(sttrArrrayy0)=Inttegeer.pparsseInnt(4) /先先搜索自自己的 好友查查看是否否有 該該號(hào)碼 ,有則則提示 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) /根根據(jù)頭像像信息刷刷新主功功能界面面 FriienddLisst ffrl=neww FrrienndLiist(2); frll.uppdatteMaainFFramme(sstrAArraay33,sstrAArraay11); /-如如果加為為好友則則執(zhí)行如如上步驟驟- cattch(Exccepttionn e)e.priintSStacckTrracee(); ).staart(

53、); /首首先啟動(dòng)動(dòng)一個(gè)線線程,用用來(lái)不斷斷從指定定端口讀讀取數(shù)據(jù)據(jù) 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+我我方號(hào)碼碼+姓名名+性別別+年齡齡+個(gè)簽簽+頭像像) /Strringg sttrMeess=neww Sttrinng(+3+我我方號(hào)碼碼+所發(fā)送送的信息息); /SStriing strrOnllinee=neew SStriing(+44+我方號(hào)號(hào)碼); /Strringg sttrOfffliine=neww Sttrinng(+5+我我方號(hào)碼碼); /Sttrinng sstrFFriee=neew SStriing(+11+我方號(hào)號(hào)碼+fiindUUserr()+姓姓名+性性別+年年齡+個(gè)個(gè)簽+頭頭像+要要將你加加為好友友)(注:由由于代碼碼太多,只能貼貼少部分分了。趙趙雨汀

60、,劉彬整整理全部部文檔。)六:軟件件截圖七:參考考文獻(xiàn)javva語(yǔ)言言導(dǎo)學(xué),Maary Cammpioone網(wǎng)站 HYPERLINK /blog/cns!7dbdf42ee58f4a79!221.entry hhttpp:/pwoosbooy.sspacces.livve.ccom/bloog/ccns!7dbbdf442eee58ff4a779!2221.enttry網(wǎng)站 HYPERLINK /www1/ hhttpp:/m/wwww1/ HYPERLINK / httpp:/m/八:組員員學(xué)習(xí)心心得我所遇到到的問(wèn)題題。開(kāi)始時(shí)有有點(diǎn)不知知所措。尤其是是建立模模型圖的的時(shí)候。我就不不知道為為什

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論