主要功能有:四則運算;求倒數;求開方;存儲計算結果;讀取計算結果;累積計算結果。
在Swing界面中實現本書的項目。使用到 JFrame和JPanel兩個Swing容器,使用到JTextField和JButton兩個Swing容器,使用BorderLayout和GridLayout做兩個佈局器,以及使用到事件、事件監聽器和事件適配器等。
預期效果:
使用符號“MC”、“MR”、“MS”、“M+”代表清除存儲結果、讀取存儲結果、保存存儲結果和累加存儲結果。“CE”和“C”代表清除上次計算結果和清除所有計算結果。
一、創建cal工程,加入類
需要上述四個類,其中界面類(CalFrame)主要用來顯示計算器界面,功能類(CalService)主要用於完成計算器中的邏輯功能,計算工具類(MyMath)是工具類,用於處理大型數字的加減乘除,計算器類(Cal)用於打開計算器。
二、MyMath工具類
使用BigDemical封裝基本類型,防止使用float和double損失精度。
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(),此方法獲得計算器的其它操作鍵。