主要功能有:四则运算;求倒数;求开方;存储计算结果;读取计算结果;累积计算结果。
在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(),此方法获得计算器的其它操作键。