支持正负整数、正负小数四则运算,整数的取模运算,有历史数据的计算器
主页面:
package Course;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.Stack;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.*;
class JiSuan extends JFrame{
private static final String FILE_PATH = "./text_history.txt"; // 本地文件路径
JPanel panel;
JTextField text;
JButton jb0,jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9; //0~9四个数字(可写成数组)
JButton bot,add,sub,mul,div,equ; //加减乘除以及小数点五个符号
JButton cle,del,mod,cad;//清楚文本、回退、取模、正负数
JButton his;//历史记录
JPanel northPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5));//北部区域
public JiSuan(){
this.setBounds(300, 200, 400, 300); //窗体大小
this.setTitle("计算器"); //窗体名称
this.setLayout(new BorderLayout()); //设置计算机窗体的布局方式
text = new JTextField(30); //计算区域
//新建数字按钮
jb0 = new JButton("0");
jb1 = new JButton("1");
jb2 = new JButton("2");
jb3 = new JButton("3");
jb4 = new JButton("4");
jb5 = new JButton("5");
jb6 = new JButton("6");
jb7 = new JButton("7");
jb8 = new JButton("8");
jb9 = new JButton("9");
//新建符号按钮
bot = new JButton(".");
add = new JButton("+");
sub = new JButton("-");
mul = new JButton("*");
div = new JButton("/");
equ = new JButton("=");
cle = new JButton("CE");
del = new JButton("del");
mod = new JButton("%");
cad = new JButton("+/-");
his = new JButton("历史");
//新建计算器数字及符号所在区域面板
panel = new JPanel();
panel.setLayout(new GridLayout(5,4)); //设置面板的布局方式
//将各按钮组件放入面板(panel)中
//第一行
panel.add(jb7);
panel.add(jb8);
panel.add(jb9);
panel.add(div);
//第二行
panel.add(jb4);
panel.add(jb5);
panel.add(jb6);
panel.add(mul);
//第三行
panel.add(jb1);
panel.add(jb2);
panel.add(jb3);
panel.add(sub);
//第四行
panel.add(bot);
panel.add(jb0);
panel.add(equ);
panel.add(add);
//第五行
panel.add(cle);
panel.add(del);
panel.add(mod);
panel.add(cad);
//北部区域
northPanel.add(text);
northPanel.add(his);
this.add(northPanel,BorderLayout.NORTH);
this.add(panel);
MyEvent(); //事件处理
this.setVisible(true); //设置窗体显示
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体可关闭
}
public void MyEvent(){
//文本清除
cle.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
text.setText("");
}
});
//回退
del.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {