1. 程式人生 > >從0到1實現一個簡單計算器

從0到1實現一個簡單計算器

### 前言 學習程式語言最重要的就是實踐。很多小夥伴在學習完程式語言後,一直停留在基礎階段,只懂一大堆理論知識,而不懂得實踐。那麼,今天我們一起來動手做一個小計算器,回顧下學習過的知識,同時這也是很多大學計算機專業的期末作業,應該嘗試動手並完全理解它,學廢了記得點贊收藏加關注哦。 ## 開始動手 **本次實驗會用到Java Swing圖形元件進行開發** >主要知識點 > - Java Swing介面的程式設計 > - 計算器運算邏輯的實現 **一、專案建立** 1. 開啟Eclipse,在檔案的選單File選擇 **New -> Java Project** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d4d84e776b7e4249935d7b8e8ec22759~tplv-k3u1fbpfcp-zoom-1.image) 2.在**Project name**一欄填寫**專案名稱Calculator(自定義)**,並點選**Finish**按鈕完成建立 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c47f9c265d6a48b99dfb123cbfdb6700~tplv-k3u1fbpfcp-zoom-1.image) 3.建立一個**包package** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e0bfec439ee14290b44252c424327ada~tplv-k3u1fbpfcp-zoom-1.image) 4.在建立好的專案目錄**src**上右鍵點選,選單中選擇 **New -> Class** 來建立一個類 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7d231ea5bc7a40a08630e0334e8eb528~tplv-k3u1fbpfcp-zoom-1.image) 5.在新建類的對話方塊中填寫類名 **Calculator(自定義)**,點選 **Finish** 按鈕完成建立 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ad96aecbfe184d4a84b0f56b9aef1f65~tplv-k3u1fbpfcp-zoom-1.image) **二、程式碼部分** 未接觸過Swing的小夥伴可以先去下面的連結學習下入門的基礎知識 **http://c.biancheng.net/swing/** 1.編寫響應邏輯的實現 定義儲存當前被按下的運算元和操作符,result儲存運算的結果 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/75f09dc4a48047428763c249a24386e2~tplv-k3u1fbpfcp-zoom-1.image) 定義狀態開關 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1e39c25831ee4b22bb900e942f48f228~tplv-k3u1fbpfcp-zoom-1.image) 定義JButton變數,儲存按下的鍵,定義一個Vector,儲存所有的輸入 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e6008f9989a44bdd90b0bc029130a724~tplv-k3u1fbpfcp-zoom-1.image) 2. UI元件建立 建立主窗體,按鈕和文字框 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/74a88f9da94542f7ba84fb024167ce9c~tplv-k3u1fbpfcp-zoom-1.image) 3.在構造器中完成等效鍵的設定、UI元件新增進容器、事件處理程式的設計、計算邏輯的實現以及視窗關閉事件的程式碼編寫的工作 > 等效鍵的設定(即可以通過對應的鍵盤按鍵來代替點選它) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ea9628abc3e24e8d9f73262552e4cda7~tplv-k3u1fbpfcp-zoom-1.image) > 文字框對齊 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/028c0f657cf14aeeb294e7d3b8b3eeda~tplv-k3u1fbpfcp-zoom-1.image) > UI元件新增進容器 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/852961fbdf274837adf04bba83fe747c~tplv-k3u1fbpfcp-zoom-1.image) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6cfdabeb58ae4c6c92d25bbfc8e9eee3~tplv-k3u1fbpfcp-zoom-1.image) > 事件處理程式 **數字鍵處理邏輯** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a81f945c14a3489eaa059633ff4c891a~tplv-k3u1fbpfcp-zoom-1.image) **運算子處理邏輯** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5757c01454be4e19989cfe4408b80fb0~tplv-k3u1fbpfcp-zoom-1.image) **清除鍵處理邏輯** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ba92b4f4c1f1458a8e91741c79284de7~tplv-k3u1fbpfcp-zoom-1.image) **等於鍵處理邏輯** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a79e5f86bca44be0922c2c6b3491cea3~tplv-k3u1fbpfcp-zoom-1.image) **小數點處理邏輯** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bb65878574c741ee8ee59eb684a3b01c~tplv-k3u1fbpfcp-zoom-1.image) **註冊監聽器** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0313b5d8d1b24132add25f99a1684ef0~tplv-k3u1fbpfcp-zoom-1.image) **視窗關閉** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4f8bf1c2e8a840adbe9030f5d1b780ba~tplv-k3u1fbpfcp-zoom-1.image) **計算邏輯** ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9c3a0b41bd194ecbb268a369faf009cb~tplv-k3u1fbpfcp-zoom-1.image) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a0a356775bc344779a73f5c1df0ff720~tplv-k3u1fbpfcp-zoom-1.image) **三、執行專案** 實現效果如下 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/273e753a3c1c484faf0386a7bcab85bf~tplv-k3u1fbpfcp-zoom-1.image) **四、專案總結** 本次實踐練習如何使用Swing進行圖形介面的程式設計以及一些計算邏輯的實現,也只是實現了基本的計算器功能的實現,感興趣的可以自己動手加一點東西,比如運算子優先順序的實現(需要資料結構的實現),進一步提高思考和程式設計的能力。 本次專案的原始碼已編寫打包好。 公眾號 **CodeVald** 後臺回覆 **計算器** 即可領取。 **有收穫的小夥伴記得點贊收藏加關注哦。筆