局域网聊天程序 java MySQL_课内资源 - 基于JAVA的局域网聊天软件的设计与实现(仿制QQ)...
一、系統(tǒng)分析
1.1 問題描述客戶端
實(shí)現(xiàn)簡易版的局域網(wǎng)聊天器
實(shí)現(xiàn)富文本內(nèi)容聊天
智能聊天機(jī)器人
群發(fā)消息
傳送文件等功能
服務(wù)器端
實(shí)現(xiàn)群發(fā)通知
管理聊天線程
1.2 系統(tǒng)功能分析客戶端功能
登陸注冊
發(fā)送表情消息
發(fā)送文本消息
截取圖片
圖片處理
震動(dòng)效果
發(fā)送文件
群發(fā)消息
設(shè)置聊天文本樣式
服務(wù)器端
廣播通知
1.3 開發(fā)平臺(tái)及工具介紹Eclipse Mars2
二、系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)采用自己設(shè)計(jì)的網(wǎng)絡(luò)消息傳輸協(xié)議,系統(tǒng)采用CS架構(gòu)模式實(shí)現(xiàn)數(shù)據(jù)傳送。
2.2 系統(tǒng)各個(gè)類及類之間關(guān)系設(shè)計(jì)
注:
界面一般是繼承了JFrame或JWindow
JList、JTable所用的model和渲染器renderer都是自己重寫的
其余的一些比較瑣碎的關(guān)系理起來比較復(fù)雜
程序中的控件大多是自己自定義改寫的
2.3 數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)(文件等)采用鍵值對的方式存儲(chǔ)賬號(hào)密碼
截圖默認(rèn)保存在ScreenCut/+文件名.jpg
用到了多種流操作,以及網(wǎng)絡(luò)傳輸最關(guān)鍵的套接字操作
2.4 界面設(shè)計(jì)自定義渲染和數(shù)據(jù)模型,實(shí)現(xiàn)JList、JTable的外交改變
最長用的是在渲染器中繼承JTable實(shí)現(xiàn)Renderer接口
三、系統(tǒng)實(shí)現(xiàn)
四、系統(tǒng)測試
模塊測試與系統(tǒng)測試:
4.4 登陸測試
4.5 注冊測試
4.6 表情測試
4.7 震動(dòng)測試
震動(dòng)效果無法截圖!
4.8 截圖測試
4.9 濾鏡效果測試
4.10 設(shè)置測試
4.11 機(jī)器人聊天測試
4.12 文件傳輸測試
4.13 服務(wù)器管理界面測試
五、總結(jié)
通過這次的課程設(shè)計(jì),可以說是開闊了自己的眼界,可以總結(jié)為以下幾個(gè)方面:
對JAVA體系的更深入的了解、對JAVA圖像處理初步認(rèn)識(shí)、對JAVA網(wǎng)絡(luò)通信流的操作、流的套接更進(jìn)一步深刻了解
對網(wǎng)絡(luò)通信的理解,CS、BS架構(gòu)模式的了解
對設(shè)計(jì)模式的初步認(rèn)識(shí)與使用,線程管理這塊單例模式的功能
對JAVA的MVC模式的更深刻了解,層與層的分工明確,效率高,易管理,讓人驚嘆
對線程的理解更深刻了,深諳UI主線程與處理耗時(shí)操作的子線程的邏輯處理關(guān)系
對網(wǎng)絡(luò)協(xié)議的初步了解,關(guān)于協(xié)議的定義了解,以及各種傳送協(xié)議的效率比較有了大體。印象,Socket通信UDP和TCP通信機(jī)制初步了解
對系統(tǒng)的架構(gòu)設(shè)計(jì)有了初步認(rèn)識(shí),緩存機(jī)制,分布式系統(tǒng)等,雖然代碼中還未實(shí)現(xiàn),程序也并不是面向抽象編程和面向接口編程,代碼低耦高聚效果一般,但仍然受益
知識(shí)方面,在課程設(shè)計(jì)的任務(wù)中主要負(fù)責(zé)jlist jtable覆蓋重寫、基礎(chǔ)類的繼承重寫、接口實(shí)現(xiàn)、界面設(shè)計(jì)與美化等。玩了半個(gè)假期后很多學(xué)過的知識(shí)都記不清楚了,所以打碼的過程中經(jīng)常翻書,讓我又重溫了知識(shí);一部分知識(shí)書上沒有,還需要上網(wǎng)查詢或者找同學(xué)幫忙解決。有很多瓶頸時(shí)候,但堅(jiān)持過去,看到一起完成的作品會(huì)有很大的滿足感;其他方面:經(jīng)過這次課程設(shè)計(jì)任務(wù),我又一次認(rèn)識(shí)到了團(tuán)隊(duì)合作的力量和重要性。一起討論問題:苦惱過,失落過,興奮過,到最后的成就感,讓我成長,也對自己有了很大的信心。
在這次課程設(shè)計(jì),我們一起討論要實(shí)現(xiàn)這個(gè)系統(tǒng)的哪些功能,把各自的想法說出來研究,我們還根據(jù)各自所學(xué)之長來分配工作,讓我意識(shí)到在團(tuán)隊(duì)合作里每個(gè)人都能分享自己的想法、找到自己的位置發(fā)揮所長很重要,這樣才能讓我們更好地完成我們的工作。在完成我們的任務(wù)的過程中,我把每個(gè)功能逐步實(shí)現(xiàn),比如在實(shí)現(xiàn)登錄功能的時(shí)候,我會(huì)先把輸入正確的賬號(hào)和密碼登錄成功的功能實(shí)現(xiàn),然后再實(shí)現(xiàn)判斷輸入的賬號(hào)和密碼是否一致,若不一致就返回重新輸入賬號(hào)密碼這一功能,這讓我在發(fā)現(xiàn)錯(cuò)誤的時(shí)候更加容易找出并解決。在此過程雖然遇到許多困難,但是我都會(huì)去研究課本和課件里的例題或者上網(wǎng)去看教學(xué)視頻,一步一步測試,自己實(shí)在無法解決了就去找同學(xué)幫助。
經(jīng)過這次課程設(shè)計(jì),我對Java有了更深的了解,但這還遠(yuǎn)遠(yuǎn)不夠,為了未來的發(fā)展,我必須更加努力地去學(xué)習(xí)更廣更深的知識(shí)。
總結(jié)
以上是生活随笔為你收集整理的局域网聊天程序 java MySQL_课内资源 - 基于JAVA的局域网聊天软件的设计与实现(仿制QQ)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: winform判断线程有没有完成_并发编
- 下一篇: oracle数据库密码复杂度查询,Ora