day5 part2:实例开发2---仿Windows计算器

来源:互联网 发布:淘宝网触屏版下载 编辑:程序博客网 时间:2024/05/16 09:34

主要功能有:四则运算;求倒数;求开方;存储计算结果;读取计算结果;累积计算结果。

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(),此方法获得计算器的其它操作键。

0 0