Java实现四则运算计算器,支持带有括号的四则运算,以及求余,取倒数,开平方。原理比较简单,界面可能比较粗糙,读者仅供参考,可以自行进行修改。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Stack;
import javax.swing.*;
import javax.xml.soap.Text;
public class Calculator extends JFrame{
Stack<Character> priStack=new Stack<Character>();
Stack<Double> numStack=new Stack<Double>();
public Calculator() {
Container c=getContentPane();
Font font = new Font("宋体",Font.BOLD,15);
this.setLayout(new GridLayout(4,1));
JTextField jt=new JTextField("0");
JTextField jt1=new JTextField("");
jt.setFont(font);jt1.setFont(font);
jt1.setHorizontalAlignment(JTextField.RIGHT);
jt.setHorizontalAlignment(JTextField.RIGHT);
JButton data0=new JButton("0");
JButton data1=new JButton("1");
JButton data2=new JButton("2");
JButton data3=new JButton("3");
JButton data4=new JButton("4");
JButton data5=new JButton("5");
JButton data6=new JButton("6");
JButton data7=new JButton("7");
JButton data8=new JButton("8");
JButton data9=new JButton("9");
JButton left=new JButton("(");
JButton l1=new JButton("1/x");
JButton l2=new JButton(" ");
JButton l3=new JButton(" ");
JButton right=new JButton(")");
JButton point=new JButton(".");
JButton sqrt1=new JButton("sqrt");
JButton mod=new JButton("%");
JButton puls=new JButton("+");
JButton minus=new JButton("-");
JButton equ=new JButton("=");
JButton mul=new JButton("*");
JButton dvd=new JButton("/");
JButton DEC=new JButton("清零");
JButton back=new JButton("退格");
JPanel jp=new JPanel();
jp.setLayout(new GridLayout(3,5,5,5));
jp.add(data7);jp.add(data8);
jp.add(data9);jp.add(puls);jp.add(back);
jp.add(data4);
jp.add(data5);jp.add(data6);
jp.add(minus);jp.add(DEC); jp.add(data1);
jp.add(data2);jp.add(data3);
jp.add(mul);jp.add(sqrt1);
JPanel jpp=new JPanel();
jpp.setLayout(new GridLayout(2,5,5,5));
jpp.add(point);jpp.add(equ);jpp.add(data0);
jpp.add(dvd);jpp.add(mod);
jpp.add(left);jpp.add(right);
jpp.add(l1); jpp.add(l2); jpp.add(l3);
c.add(jt);c.add(jt1);c.add(jp);c.add(jpp);
this.setSize(400,500);
this.setTitle("计算器");
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sqrt1.addActionListener(ne