计算器(java)

来源:互联网 发布:泰拉瑞亚数据统计器 编辑:程序博客网 时间:2024/06/03 20:39
import java.awt.BorderLayout;import java.awt.Button;import java.awt.FlowLayout;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.math.BigDecimal;import java.math.BigInteger;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextField;public class Calculator_2 extends JFrame implements ActionListener {private JTextField jtf;private JButton btn1;private JButton[] btn = new JButton[18];private String str1 = "789-456×123÷0.C+=";private String str = "";private boolean isFrist = true;private int flag = 1, style = 0; public Calculator_2() {super("计算器改进版");this.setBounds(300, 200, 250, 320);this.setResizable(false);this.setDefaultCloseOperation(EXIT_ON_CLOSE);// 计算界面设置this.getContentPane().setLayout(null);jtf = new JTextField("", 25);jtf.setBounds(new Rectangle(5, 3, 235, 27));jtf.setHorizontalAlignment(JTextField.RIGHT);this.getContentPane().add(jtf);// 按钮设置for (int i = 1; i <= 17; i++) {btn[i] = new JButton("" + str1.charAt(i - 1));btn[i].addActionListener(this);this.getContentPane().add(btn[i]);if (i <= 4) {btn[i].setBounds(10 + (i - 1) * (60), 92, 43, 42);}if (i > 4 && i <= 8) {btn[i].setBounds(10 + (i - 5) * (60), 144, 43, 42);}if (i > 8 && i <= 12) {btn[i].setBounds(10 + (i - 9) * (60), 196, 43, 42);}}btn[13].setBounds(132, 250, 43, 40);btn[14].setBounds(190, 250, 43, 40);btn[15].setBounds(132, 40, 43, 42);btn[16].setBounds(190, 40, 47, 42);btn[17].setBounds(new Rectangle(10, 250, 102, 40));this.setVisible(true);}public static void main(String[] args) {new Calculator_2();}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getSource() == btn[1]) {str = jtf.getText() + "7";jtf.setText(str);}if (e.getSource() == btn[2]) {str = jtf.getText() + "8";jtf.setText(str);}if (e.getSource() == btn[3]) {str = jtf.getText() + "9";jtf.setText(str);}if (e.getSource() == btn[5]) {str = jtf.getText() + "4";jtf.setText(str);}if (e.getSource() == btn[6]) {str = jtf.getText() + "5";jtf.setText(str);}if (e.getSource() == btn[7]) {str = jtf.getText() + "6";jtf.setText(str);}if (e.getSource() == btn[9]) {str = jtf.getText() + "1";jtf.setText(str);}if (e.getSource() == btn[10]) {str = jtf.getText() + "2";jtf.setText(str);}if (e.getSource() == btn[11]) {str = jtf.getText() + "3";jtf.setText(str);}if (e.getSource() == btn[13]) {str = jtf.getText() + "0";jtf.setText(str);}if (e.getSource() == btn[14] && flag == 1) {str = jtf.getText() + ".";flag = 0;jtf.setText(str);}if (e.getSource() == btn[15]) {jtf.setText("");}if (e.getSource() == btn[4] && isFrist) {str = jtf.getText() + "-";isFrist = false;flag = 1;style = 2;jtf.setText(str);}if (e.getSource() == btn[8] && isFrist) {str = jtf.getText() + "×";isFrist = false;flag = 1;style = 3;jtf.setText(str);}if (e.getSource() == btn[12] && isFrist) {str = jtf.getText() + "÷";isFrist = false;flag = 1;style = 4;jtf.setText(str);}if (e.getSource() == btn[16] && isFrist) {str = jtf.getText() + "+";isFrist = false;flag = 1;style = 1;jtf.setText(str);}if (e.getSource() == btn[17]) {if (style == 1) {String s[] = str.split("+");BigDecimal b1 =new BigDecimal(s[0]);BigDecimal b2 =new BigDecimal(s[1]);jtf.setText("" + b1.add(b2));b1=b1.add(b2);flag = 1;isFrist = true;}if (style == 2) {String s[] = str.split("-");BigDecimal b1 =new BigDecimal(s[0]);BigDecimal b2 =new BigDecimal(s[1]);jtf.setText("" + b1.subtract(b2));b1=b1.add(b2);flag = 1;isFrist = true;}if (style == 3) {String s[] = str.split("×");BigDecimal b1 =new BigDecimal(s[0]);BigDecimal b2 =new BigDecimal(s[1]);jtf.setText("" + b1.multiply(b2));b1=b1.add(b2);flag = 1;isFrist = true;}if (style == 4) {String s[] = str.split("÷");BigDecimal b1 =new BigDecimal(s[0]);BigDecimal b2 =new BigDecimal(s[1]);jtf.setText("" + b1.divide(b2,5,BigDecimal.ROUND_HALF_UP));b1=b1.add(b2);flag = 1;isFrist = true;}}}}

1 0
原创粉丝点击