day5 part2:實例開發2---仿Windows計算器

主要功能有:四則運算;求倒數;求開方;存儲計算結果;讀取計算結果;累積計算結果。

Swing界面中實現本書的項目。使用到 JFrameJPanel兩個Swing容器,使用到JTextFieldJButton兩個Swing容器,使用BorderLayoutGridLayout做兩個佈局器,以及使用到事件、事件監聽器和事件適配器等。

預期效果:

使用符號“MC”、“MR”、“MS”、“M+”代表清除存儲結果、讀取存儲結果、保存存儲結果和累加存儲結果。“CE”和“C”代表清除上次計算結果和清除所有計算結果。

一、創建cal工程,加入類


需要上述四個類,其中界面類(CalFrame)主要用來顯示計算器界面,功能類(CalService)主要用於完成計算器中的邏輯功能,計算工具類(MyMath)是工具類,用於處理大型數字的加減乘除,計算器類(Cal)用於打開計算器。

二、MyMath工具類

使用BigDemical封裝基本類型,防止使用floatdouble損失精度。

static double add(double num1,double num2):加法,返回double類型。

static double abstract(double num1,double num2):減法,返回double類型。

static double multiply(double num1,double num2):乘法,返回double類型。

static double divide(double num1,double num2):除法,返回double類型

三、CalService

處理計算器業務邏輯,計算結果並返回以及記錄計算機狀態(用戶上一步操作)。

String callMethod(String cmd , String text),調用方法並返回計算結果。

String cal(String text,boolean isPercent),用來計算加、減、乘、除法,並返回封裝成String型的結果。參數text是顯示框中的數字內容,boolean類型的參數isPercent代表是否有"%"運算,如果有,便加上去。

String setReciprocal( String text ),用來計算倒數,並返回封裝成 String 內型的結果。

String sqrt( String text ),用來計算開方,並返回封裝成 String 內型的結果。

String setOp( String cmd , String text ),設置操作符號。

String setNegative( String text ),設置正負數,當 text 是正數時,返回負數的數字字符串,反之,則返回正數的數字字符串。

String catNum( String cmd, String text ),連接輸入的數字,每次點擊數字,就把把新加的數字追加到後面,並封裝成字符串返回。

String backSpace( String text ),刪除最後一個字符,並返回結果。

String mCmd( String cmd, String text ),用來實現“ M+”“ MC”“ MR”“ MS”與存儲有關的功能。

String clearAll(),清除所有計算結果。

String clear( String text),清除上次計算結果。

四、CalFrame類

void initialize(),初始化計算器界面。

ActionListener getActionListener(),如果動作監聽器爲空,則創建一個,並返回,如果不爲空,直接返回。

JTextField getTextField(),這個方法初始化輸入框。

JButton[] getMButton(),此方法獲得計算器的存儲操作鍵。

JButton[] getRButton(),此方法獲得計算器的結果操作鍵。

JButton[] getNButton(),此方法獲得計算器的其它操作鍵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章