话不多说,先上图
一、测试截图:
- 四则混合运算测试
- 括号功能测试
- 输入合法性检查测试
二、设计要求:
- 主要用JAVA编写一个计算器,能实现四则混合运算并且带有括号功能息
- 计算器有图形化界面
- 能对异常进行处理
- 检验输入的合法性,对不合法的输入给出具体的提示信息
三、实现步骤:
- 编写一个Counter类,在构造方法采用JFrame窗体实现界面,并对按钮进行监听
- 编写监听事件处理方法,其中对按钮分为四类,清零键C,退格键B,等号键和其他按钮,分别对各自的事件进行响应
- 编写规则检查方法,用户每次触发事件后,程序自动调用该方法对第一行文本框中的公式进行语法检查,且将错误信息提示在第二行文本框中
- 编写计算方法,调用Java自带类中的方法,实现对字符串的直接计算
四、程序源代码:
package priv.lxm.homework.report04;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;
public class Counter extends JFrame implements ActionListener {
private JTextField text;//用于显示输入的计算公式
private JTextField textResult;//用于显示计算结果
private boolean rule=false;//用于表示输入规则是否正确
private int fBracket=0,lBracket=0;//用于存储公式中的前后括号数
static ScriptEngine Js=new ScriptEngineManager().getEngineByName("JavaScript");
private Counter(){
//构造方法
setTitle("【优快云博客:向远方啊】计算器");
setSize(309,368);
setResizable(false);//关闭窗体大小调节
setLocationRelativeTo(null);//计算器在屏幕位置居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container integralContainer=this.getContentPane();//定义全局容器
integralContainer.setBackground(new Color(240,255,255));//设置全局背景色
integralContainer.setLayout(new BorderLayout(0,0));//控制整体边距
JPanel upContainer=new JPanel();//定义屏幕容器
JPanel downContainer=new JPanel();//定义键盘容器
upContainer.setLayout(new GridLayout(2,1,0,0));//设置屏幕容器布局方式
downContainer.setLayout(new GridLayout(5,4,0,0));//设置键盘容器布局方式
integralContainer.add(upContainer,BorderLayout.NORTH);//设置全局容器的布局方式
integralContainer.add(downContainer,BorderLayout.SOUTH);
Font font=new Font("Times Roman",Font.BOLD,30);
text=new JTextField();//实例化屏幕文本框
textResult=new JTextField();
text.setFont(font);//设置文本框字体格式
textResult.setFont(font);
text.setBorder(null);//隐藏文本框边框
textResult.