【小型系統】抽獎系統-使用Java Swing完成

來源:互聯網
上載者:User

標籤:包括   產生   sys   aws   ref   alt   hub   列表   swing   

一、需求分析

  1. 顯示候選人照片和姓名。

  2. 可以使用多種模式進行抽獎,包括一人單獨抽獎、兩人同時抽獎、三人同時抽獎。

  3. 一個人可以在不同的批次的抽獎中擷取一、二、三等獎,但是不能在同一批次抽獎中擷取多個獎項。

二、系統總體架構

  系統需求比較簡單,採用Java Swing技術可以很好的實現,系統的總體類架構圖如下

  

  說明:基於主要的三個類就可以完成所需要的功能,Frame有Panel類型與MouseAdapter類型的成員,Panel主要使用者存放具體的控制項和繪製相應的資訊,MouseAdapter主要用於響應滑鼠的點擊操作。

三、系統實現細節

  1. 照片輪流顯示效果 - 定時器

  既然是抽獎系統,所以一定要有讓候選人圖片滾動以起來的效果,那麼如何?呢?採用定時器即可,每100ms出發一次定時器,則可以讓每100ms都顯示不同候選者的照片和姓名。

  2. 同一候選人在同一批次不能獲得多個獎項 - 迴圈演算法

  在進行多人模式進行抽獎的時候,如何保證同一候選人不能獲得多個獎項?使用一個迴圈演算法即可,若隨機產生的幾個數相同,則重建,直到同一批次產生的數均不相同。

  3. 候選人照片與姓名如何對應 - 兩個鏈表實現

  使用兩個鏈表保證滾動的照片和姓名相對應,前提是照片名字是用候選人姓名+照片格式構成,如leesf.jpg。這樣,在讀取照片的時候也對照片名進行解析,提取出名字,並將照片和名字分別加入照片鏈表和姓名列表,這樣,在取的時候直接同時取照片鏈表和姓名鏈表的相應項即可。

四、代碼清單

  本系統代碼已經上傳到GitHub上。地址為:https://github.com/leesf/LuckDrawSystem.git 歡迎各位園友fork和下載。

五、運行

  

  系統介面

功能表列

六、總結

  一個非常簡單的抽獎系統,讀者有需要的可以根據自己的需求去進行修改。謝謝各位園友的觀看~

【小型系統】抽獎系統-使用Java Swing完成

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.