Java實現GUI計算機【代碼】

來源:互聯網
上載者:User

標籤:操作   journal   計算機   彈出對話方塊   r.java   匹配   png   win10   錯誤   

這幾天用java寫了一個計算機程式,開始寫的時候原本只是想實現一下GUI(這個是直接讀三個字母還是什麼“固椅”的發音)介面,熟悉一下Java GUI 編程,為Java期末大作業練練手,本以為代碼不會很長,結果寫完下來發現到了驚人的千行數量級,我分析了一下,主要是在實現監聽器的時候花了很大篇幅,主體程式應該會短不少。整個程式分為三個.java檔案,分別為 Calculator.java EvaluateExpression.java Arith.java ,程式已放到Github上去了(https://github.com/JiaxinTse),首先是使用者在介面上輸入,然後輸入完得到一個字串,在使用者按下等號的時候把這個字串傳給EvaluateExpression.java裡的一個中綴運算式求值函數,計算出結果,在傳入運算式之前要對錶達式進行括弧匹配分析,由於計算機精度需要,又考慮到java中double型資料運算存在的潛在誤差,於是重新實現了浮點數的加減乘除運算,原因是我遇到了這樣一個問題(http://blog.csdn.net/jackiehff/article/details/8582449 )

程式花了很大篇幅阻止使用者的非法輸入,所以原本可以寫的不是很長的監聽器類最後變得很長,因為我覺得在使用者輸入的時候就儘可能地減少錯誤要比你先讓使用者隨便輸入最後對錶達式進行綜合分析要來得簡單,下面簡單列舉一些阻止的非法輸入:

):第一個符號就是右括弧

(1+2)3:右括弧後面直接接數字,類似的左括弧也有這些情況

2.3.4:在一個數字上輸入多個小數點

(*):括弧後面直接接運算子

(1+2)*=:等號前面出現了非法符號

1+*2:連續輸入運算子

等等...

這些判斷是在使用者輸入階段進行的,如果判斷為非法,就不做任何處理,反應在程式介面上就是輸入無反應,中綴運算式求值直接利用了我之前寫的一個程式

(http://www.cnblogs.com/journal-of-xjx/p/5936448.html),但是由於java中沒有指標,所以改用數組重新定義了棧,這次直接定義了兩個棧,一個是運算元棧,一個是操作符棧,這一次也算是完善了上次那個程式,可以實現了負數和小數的計算了, 所以這次的中綴運算式程式比上次多了不少代碼。

表單的主要布局如下

 

整個介面模仿Win10內建的計算機

以下是整個介面各部分組件的布局

以下是彈出對話方塊的效果

上面的連結都是可以開啟的哦

寫了三天的時間,有興趣的可以去我的github上看看

Java實現GUI計算機【代碼】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.