效果如上,代码如下
整体分为窗口、运算、按钮事件三个部分
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import static java.lang.StrictMath.pow;
import static java.lang.StrictMath.sqrt;
public class Calculator extends JFrame implements ActionListener
{
private JTextField resultText = new JTextField("0.0");//输出结果
private double now=0,ex=0;//now:当前答案,ex:二目运算符的前一个数
private double l=0;//小数部
private int flag=0;//记录小数位数,0时表示当前不是输入小数的状态
private String how="";//当前的运算符
private String temp="";//上一个运算符
private double mem=0;//存储区
private Boolean haveMem=false;//存储区是否有内容
public Calculator()
{
super("计算器");
this.setLayout(null);//手动计算各部分的位置
resultText.setBounds(20, 5, 320, 40);//设置答案框的位置和大小
resultText.setHorizontalAlignment(JTextField.RIGHT);//答案右对齐
resultText.setEditable(false);
this.add(resultText);
int x=20,y=55;//(x,y)表示当前插入按钮的光标的位置
String[] KEYS = {"MC", "MR", "MS", "M+", "M-", "Del", "CE", "C", "+-", "sqrt", "7", "8", "9", "/", "