桌面寵物Oline-------------面向程序綜合設計2020


項目由來

2018年QQ寵物就此停服,童年的回憶就此消失,為此我們(L.Z.G)決定自己寫一個桌面寵物。做這個之前我們需要一些前期的准備工作,前期調查,需要我們寵物的圖片后期的PS,還要數據庫來存儲我們的登錄信息,這里我們使用了Mysql數據庫並且使用了Navicat 的可視化操作數據庫軟件,又為了我們的桌面寵物能讓每一個人都擁有一只這么可愛的寵物,我們使用了阿里雲服務器來搭建我們的數據庫。實現每個人都擁有一只可愛無比的桌面寵物。該程序主要為了給那些懷念那只可愛的小企鵝的用戶設計。

一、團隊介紹

成員姓名 任務分配 備注
郭東陽(隊長) 服務器、主界面GUI、模塊拼接、多線程 可愛、帥氣
周理偉 實體類的設計、數據庫 機智、勇敢
李星寶 部分GUI、音樂模塊、程序可執行調試 帥氣、迷人
##二、項目Git地址

https://gitee.com/jellysheep/development_of_desktop_pet.git

三、Git項目提交記錄截圖

四、項目功能架構圖、主要功能流程圖

五、面向對象設計類圖

1、Skill接口

2、User 類存儲登錄用戶信息

3、pet類.存儲寵物信息屬性、好感度以及互動的方法

4、Account類 存儲記賬的信息

5、pet.Girl類 特有類繼承接口Skill

6、Reminder類 提醒類 存儲數據庫中提示語句

六、項目運行截圖與屏幕錄制

1、登錄界面后面的背景皮卡丘是個動態的小寵物



2、注冊界面

3、寵物主界面

4、系統托盤菜單

5、菜單主界面、包含播放和暫停音樂按鈕

6、寵物屬性、好感度


7、記賬界面

8、寵物演示小視頻

https://v.youku.com/v_show/id_XNDUwNDM3MjYxMg==.html

七、項目關鍵代碼

1、登錄按鈕的監聽


這里對登錄按鈕添加了監聽器,在該部分代碼中使用UserDaoImpl類里的isLogin方法對服務器發送請求獲取服務端的數據庫信息,並且做出比對給出判斷反饋

2、主界面的多線程

Def和Cil線程是維持桌面寵物一直處於動態的主要代碼,以及每個一段時間的彈窗小提醒也是在這個線程里,互動之類的,好感度的實時增加

3、系統托盤

支持系統托盤、增加可操作性菜單

4、鼠標拖動寵物代碼

這部分代碼比較關鍵、如果不能拖動寵物,互動就大大的打了折扣

5、服務器端獲取彈窗信息

對服務器發送請求、進行連接,獲取數據庫中talk數據,進行隨機輸出

6、彈窗GUI的實現

這部分是為jframe設置背景圖片,在GUI的設計中,JLabel放了圖片就會把其它jLabel擠開,這很讓人頭疼;在查詢資料的過程中我發現:
在jframe上添加組件,往往是添加在contentpane中。但是在contentpane的下面還有兩層面板,那就是layeredpane和jrootpane。
任何一本關於java的書中都會介紹contentpane,卻很少提到layeredpane和jrootpane。

八、測試、改進與感想

1、測試的過程中遇到了很多問題比如線程,在鼠標進行操作的時候要怎么去變化,通過監聽器去修改一個flag值在線程里加上一個比較flag來判斷什么時候要做什么事情,還有服務器。在使用服務器作為數據庫,要注意的有很多;首先要先在阿里雲控制台設置端口的出入, 一般數據庫的端口為3306,但是服務器並沒有默認該端口可以通過,所以不開的話將不能通過3306端口訪問數據庫,同時還要在雲端數據庫運行允許外網ip訪問權限的開放的命令,並且設置外網訪問密碼;還有和隊友們對接的時候往往會出現意想不到的問題,好比如我調用隊友寫的菜單中的一個選項,會跳出一個GUI但是在關閉這個彈窗的時候會把其它GUI一起關閉這時候就需要隊友修改自己的代碼;
2、改進方面,就是互動的動作可能太少了,時間的不足沒辦法讓我們的GUI寵物動作更加豐富,因為很多圖片都需要我們自己去PS修改才能用;
3、通過這次課程設計,讓我明白了團隊合作有很大的好處,同時默契也是團隊合作中的關鍵,團隊合作使我靈活應用所學的知識,完成自己團隊分工的內容;學會了很多東西,也知道可如何在服務器上架構數據庫,怎么連接遠程數據庫,GUI的布局管理;這些都是日后實用的,只有不斷的學習、實踐,再學習、再實踐才會成長。

九、關於雲端服務器

剛開始,想着的是用本地數據庫,但是那樣別人用起來就不是特別的方便了,所以我買了一個阿里雲服務來構架我們桌面寵物的數據庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM