1. 程式人生 > >java實現仿QQ即時聊天

java實現仿QQ即時聊天

這是我的java大作業,這裡就直接貼上我的實驗報告了。

1.1專案介紹
這是一個模仿QQ的即時聊天軟體,可以通過執行在本地的服務端,實現兩個客服端之間的通訊,即聊天。採用的是javafx架構作為GUI設計架構,個人認為優點是可以自己設計css,使介面達到美觀的目的。本專案共有登入、註冊、重置密碼、主介面發訊息、新增好友、好友列表項、檢視聊天記錄、刪除聊天記錄、未讀訊息提醒、好友主頁、我的主頁等模組。該專案還呼叫了簡訊驗證碼的api和圖靈機器人的api。在進行註冊和重置密碼時,都會有傳送驗證碼的按鈕,通過輸入的手機號接收驗證碼。每個人的賬號都會有個聊天助手,聊天助手就是接入的圖靈機器人,可實現自動智慧回覆。
二、系統分析與設計
2.1本程式需解決的關鍵技術問題
1、簡訊驗證碼和圖靈機器人的api呼叫。
2、兩個客戶端通過服務端實現通訊。
3、好友列表項的實現。把新加的好友直接新增到好友列表。
4、聊天記錄的實現,兩方發的訊息一左一右的顯示。
5、兩個好友之間發訊息的氣泡的大小自動調整。
6、記住密碼和自動登入的複選框的DIY設計
7、實現編輯我的資料時不跳轉頁面,即在我的主頁直接進行編輯
8、實現我的資訊資料在多個頁面之間的呼叫。
2.2功能模組

三、專案設計與實現
3.2程式設計
Controller是個全域性操作類,所有的登入、註冊、執行、不同介面之間的連線等主要功能都在這裡實現。Model裡面都是一些資料庫操作、氣泡調整助手、驗證碼api、圖靈api等,還有一些資料的操作類,View裡面主要就是介面的設計及功能的實現。Main就是個主函式,執行controller以執行整個程式。

Companion表:我的好友,裡面將每個賬號都匹配自己的好友和好友的備註。
在這裡插入圖片描述

Dialog表:將已經登入的賬號臨時儲存在這個表中,當賬號登出後,自動清除。
在這裡插入圖片描述

Offlinemsg表:將發給不線上好友的離線訊息儲存起來,當對應好友讀取完資訊後就刪除資訊。
在這裡插入圖片描述

Save_pass表:把勾選了記住密碼的賬號和密碼儲存在這個表中,開啟程式時自動顯示到對應的文字框。

在這裡插入圖片描述
user表:儲存使用者所有資訊的表
在這裡插入圖片描述

①登入介面:進行了賬號和密碼的驗證,同時還有記住密碼的選項,當你登入賬號時勾選了該選項,下次將在登入介面展示前顯示在輸入框中。還會檢查該賬號是否已經登入,如果已經登入則不能再進行登入。如果該賬號登入成功後會將該賬號資料暫時儲存在一個表dialog中。介面是仿QQ登入介面設計的,背景用的是類QQ登入介面的gif動畫實現的。另外當滑鼠焦距輸入款時,對應的圖示會發生變化,其實是背景圖的變化。自定義了介面的最小化和關閉按鈕以及記住密碼複選框,使得介面更加的美觀。
在這裡插入圖片描述

②註冊介面:該介面有一些註冊資訊的驗證,採用的是java的正則匹配。首先會對輸入框進行驗證,如果為空則顯示提示資訊。如果不符合正則匹配也會提示相應的錯誤資訊。當你輸入了手機號後,還要點選獲取驗證碼的按鈕,獲取到一個六位數的隨機驗證碼,當你正確輸入驗證碼後才可以進行註冊。另外這裡還有一個選擇頭像的設定,點選選擇頭像,會展示系統自帶的一些頭像,你可以進行選擇自己喜歡的。

在這裡插入圖片描述
在這裡插入圖片描述
③忘記密碼:其實該介面跟註冊介面類似,就是少了年齡和性別的輸入。其他驗證與驗證碼的獲取都差不多,就不過多介紹了。

在這裡插入圖片描述

④主介面:首先左邊是好友列表,列出了所有好友的頭像和備註,以及線上狀態。好友列表解釋個listview,然後每個好友是個pane,在pane裡面新增資訊,再將pane新增到listview裡就實現了新增到好友列表。在這裡有個右鍵選單,可以實現訊息標為未讀已讀,檢視好友資料,清除聊天記錄,刪除好友等功能。
中間是個發訊息的模組,主要也是由listview和一些pane組成。和好友列表類似。一共定義了兩種pane,好友訊息是左,我的訊息是右。這樣就實現了一左一右的“新增”訊息。在這裡“我”傳送的訊息都會被傳到服務端,然後服務端再傳給對應的好友。如果好友不線上,就進行離線處理:將“我”發的所有訊息以“我的賬號+好友賬號+訊息”存在資料庫的一張表offlinemsg中。當該好友上線時,就會出現訊息提示,也就是我離線發的訊息,好友讀取訊息後,這些資料就會在資料庫中被刪除,避免出現重複提醒相同訊息。當好友線上時,也會實時提示好友未讀的訊息。實現效果大概是這樣。當然這裡還有好玩的聊天助手哦,那就是圖靈機器人,可以實現無限陪聊的功能。
在右邊就是我的主頁資訊了,上面展示我的一些基本資訊:我的頭像、姓名等,還有一些按鈕,可以實現新增好友,檢視我的更多資料,最小化、關閉等功能。

在這裡插入圖片描述
⑤好友主頁:該頁面顯示的好友的全部資料資訊,這裡有個修改備註的按鈕,當你點選後,就可以對備註文字框進行編輯,當編輯完成,點選完成按鈕,資訊就會在資料庫中更新,並在好友列表上更新。

在這裡插入圖片描述
⑥我的個人主頁:跟好友主頁類似,就是增加了一點許可權,可以更改所有資訊。

在這裡插入圖片描述
⑦新增好友:當你輸入賬號,然後按回車鍵時,就會在下面顯示對應的好友賬號,並可以進行新增。如果賬號不存在,或者是已經新增的好友則會報錯。
*在這裡插入圖片描述*
四、個人小結
該專案一共花了我兩週多的時間完成的,可以說是比較久了,個人對於最終的結果還是比較滿意,期間也遇到了很多問題,出現了很多bug,最終都一個一個的解決了。但是現在的程式還是存在很多待進一步改善的地方,我將會在之後的時間裡對它進行進一步完善。

chat客戶端下載地址:https://download.csdn.net/download/qq_40663357/10888120
cheServer服務端下載地址:https://download.csdn.net/download/qq_40663357/10888123