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();
}
@Override
public 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;
}
}
}
}
计算器(java)
最新推荐文章于 2023-12-11 14:59:15 发布