package calculator;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Calculator {
public static void main(String[] args) {
MyFrame mm = new MyFrame();
}
}
class MyFrame extends Frame {
TextField tf = new TextField(25);
JButton backspace= new JButton("BS");
JButton CE = new JButton("CE");
JButton b0 = new JButton("0");
JButton eql = new JButton("=");
JButton add = new JButton("+");
JButton b1 = new JButton("1");
JButton b2 = new JButton("2");
JButton b3 = new JButton("3");
JButton b4 = new JButton("4");
JButton b5 = new JButton("5");
JButton b6 = new JButton("6");
JButton b7 = new JButton("7");
JButton b8 = new JButton("8");
JButton b9 = new JButton("9");
JButton dvi = new JButton("÷");
JButton mul = new JButton("*");
JButton sub = new JButton("-");
JButton C = new JButton(".");
public MyFrame() {
JLabel subject = new JLabel(" 计算器");
subject.setForeground(Color.black);
JPanel pla = new JPanel();
pla.add(subject);
backspace.addActionListener(new listen(this));
CE.addActionListener(new listen(this));
C.addActionListener(new listen(this));
b0.addActionListener(new listen(this));
b1.addActionListener(new listen(this));
b2.addActionListener(new listen(this));
b3.addActionListener(new listen(this));
b4.addActionListener(new listen(this));
b5.addActionListener(new listen(this));
b6.addActionListener(new listen(this));
b7.addActionListener(new listen(this));
b8.addActionListener(new listen(this));
b9.addActionListener(new listen(this));
add.addActionListener(new listen(this));
sub.addActionListener(new listen(this));
mul.addActionListener(new listen(this));
dvi.addActionListener(new listen(this));
eql.addActionListener(new listen(this));
JFrame name = new JFrame("McNema");
JPanel p = new JPanel();
p.setLayout(new GridLayout(3,1,0,4));
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(4,4,4,4));
p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(dvi);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(mul);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(sub);
p2.add(b0);
p2.add(add);
p2.add(eql);
p2.add(C);
JPanel p3 = new JPanel();
p3.setLayout(new GridLayout(1,2,2,2));
//Panel p4 = new Panel();
// BorderLayout s = new BorderLayout();
// p4.setLayout(new GridLayout(1,3,0,0));
// p4.add(b0, BorderLayout.WEST);
// p4.add(eql, BorderLayout.CENTER);
// p4.add(add, BorderLayout.EAST);
p1.add(tf);// 放置的是计算器的输入框
CE.setForeground(Color.black);
C.setForeground(Color.black);
backspace.setForeground(Color.black);
p3.add(backspace);
p3.add(CE);
p.add(subject, BorderLayout.NORTH);
p.add(p1, BorderLayout.CENTER);
p.add(p3, BorderLayout.SOUTH);
name.setLayout(new BorderLayout(30, 5));
name.add(p, BorderLayout.NORTH);
name.add(p2, BorderLayout.CENTER);
// name.add(p4, BorderLayout.SOUTH);
name.pack();
name.setVisible(true);
name.setLocation(900, 300);
name.setSize(200, 300);
name.setResizable(false);
}
}
class listen implements ActionListener {
MyFrame dd;
listen(MyFrame ds) {
this.dd = ds;
}
public static Double zhi = 0.0;
public static Double nextzhi = 0.0;
public static Double sum = 0.0;
public static int fuhao;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (dd.b1 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "1");
} else if (dd.b2 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "2");
} else if (dd.b3 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "3");
} else if (dd.b4 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "4");
} else if (dd.b5 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "5");
} else if (dd.b6 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "6");
} else if (dd.b7 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "7");
} else if (dd.b8 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "8");
} else if (dd.b9 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "9");
} else if (dd.C == e.getSource()) {
if(dd.tf.getText().indexOf(".")<0)
dd.tf.setText(dd.tf.getText() + ".");
else
;
} else if (dd.mul == e.getSource()) {// 计算乘法
fuhao = 1;
zhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
} else if (dd.dvi == e.getSource()) {// 计算除法
fuhao = 2;
zhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
} else if (dd.sub == e.getSource()) {// 计算减法
fuhao = 3;
zhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
} else if (dd.add == e.getSource()) {// 计算加法
fuhao = 4;
zhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
}else if (e.getSource()==dd.backspace) {// 退格 得到里面的值.从最后的一位开始删除
StringBuffer sb = new StringBuffer(dd.tf.getText());
int changdu = sb.length();
if (changdu > 0) {
sb.deleteCharAt(changdu - 1);// 删除的是最后的一位
dd.tf.setText(sb.toString());
} else {
dd.tf.setText("");
}
} else if (dd.CE == e.getSource()) {// 清零
zhi = 0.0;
nextzhi = 0.0;
sum = 0.0;
dd.tf.setText("");
}else if (dd.C == e.getSource()) {// 清零
zhi = 0.0;
nextzhi = 0.0;
sum = 0.0;
dd.tf.setText("");
}else if (dd.b0 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "0");
} else if (dd.eql == e.getSource()) {// 等号;
nextzhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
if (fuhao == 1) {// 计算的是乘法;
sum = zhi * nextzhi;
dd.tf.setText(sum + "");
} else if (fuhao == 2) {// 计算除法
if(nextzhi==0){
dd.tf.setText("error");
}
else{
sum = zhi / nextzhi;
dd.tf.setText(String.valueOf(sum));
}
//dd.tf.setText(sum + "");
} else if (fuhao == 3) {// 计算减法
sum = zhi - nextzhi;
dd.tf.setText(sum + "");
} else if (fuhao == 4) {// 符号为四算的是加法;
sum = zhi + nextzhi;
dd.tf.setText(String.valueOf(sum));
}
}
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Calculator {
public static void main(String[] args) {
MyFrame mm = new MyFrame();
}
}
class MyFrame extends Frame {
TextField tf = new TextField(25);
JButton backspace= new JButton("BS");
JButton CE = new JButton("CE");
JButton b0 = new JButton("0");
JButton eql = new JButton("=");
JButton add = new JButton("+");
JButton b1 = new JButton("1");
JButton b2 = new JButton("2");
JButton b3 = new JButton("3");
JButton b4 = new JButton("4");
JButton b5 = new JButton("5");
JButton b6 = new JButton("6");
JButton b7 = new JButton("7");
JButton b8 = new JButton("8");
JButton b9 = new JButton("9");
JButton dvi = new JButton("÷");
JButton mul = new JButton("*");
JButton sub = new JButton("-");
JButton C = new JButton(".");
public MyFrame() {
JLabel subject = new JLabel(" 计算器");
subject.setForeground(Color.black);
JPanel pla = new JPanel();
pla.add(subject);
backspace.addActionListener(new listen(this));
CE.addActionListener(new listen(this));
C.addActionListener(new listen(this));
b0.addActionListener(new listen(this));
b1.addActionListener(new listen(this));
b2.addActionListener(new listen(this));
b3.addActionListener(new listen(this));
b4.addActionListener(new listen(this));
b5.addActionListener(new listen(this));
b6.addActionListener(new listen(this));
b7.addActionListener(new listen(this));
b8.addActionListener(new listen(this));
b9.addActionListener(new listen(this));
add.addActionListener(new listen(this));
sub.addActionListener(new listen(this));
mul.addActionListener(new listen(this));
dvi.addActionListener(new listen(this));
eql.addActionListener(new listen(this));
JFrame name = new JFrame("McNema");
JPanel p = new JPanel();
p.setLayout(new GridLayout(3,1,0,4));
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(4,4,4,4));
p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(dvi);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(mul);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(sub);
p2.add(b0);
p2.add(add);
p2.add(eql);
p2.add(C);
JPanel p3 = new JPanel();
p3.setLayout(new GridLayout(1,2,2,2));
//Panel p4 = new Panel();
// BorderLayout s = new BorderLayout();
// p4.setLayout(new GridLayout(1,3,0,0));
// p4.add(b0, BorderLayout.WEST);
// p4.add(eql, BorderLayout.CENTER);
// p4.add(add, BorderLayout.EAST);
p1.add(tf);// 放置的是计算器的输入框
CE.setForeground(Color.black);
C.setForeground(Color.black);
backspace.setForeground(Color.black);
p3.add(backspace);
p3.add(CE);
p.add(subject, BorderLayout.NORTH);
p.add(p1, BorderLayout.CENTER);
p.add(p3, BorderLayout.SOUTH);
name.setLayout(new BorderLayout(30, 5));
name.add(p, BorderLayout.NORTH);
name.add(p2, BorderLayout.CENTER);
// name.add(p4, BorderLayout.SOUTH);
name.pack();
name.setVisible(true);
name.setLocation(900, 300);
name.setSize(200, 300);
name.setResizable(false);
}
}
class listen implements ActionListener {
MyFrame dd;
listen(MyFrame ds) {
this.dd = ds;
}
public static Double zhi = 0.0;
public static Double nextzhi = 0.0;
public static Double sum = 0.0;
public static int fuhao;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (dd.b1 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "1");
} else if (dd.b2 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "2");
} else if (dd.b3 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "3");
} else if (dd.b4 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "4");
} else if (dd.b5 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "5");
} else if (dd.b6 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "6");
} else if (dd.b7 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "7");
} else if (dd.b8 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "8");
} else if (dd.b9 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "9");
} else if (dd.C == e.getSource()) {
if(dd.tf.getText().indexOf(".")<0)
dd.tf.setText(dd.tf.getText() + ".");
else
;
} else if (dd.mul == e.getSource()) {// 计算乘法
fuhao = 1;
zhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
} else if (dd.dvi == e.getSource()) {// 计算除法
fuhao = 2;
zhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
} else if (dd.sub == e.getSource()) {// 计算减法
fuhao = 3;
zhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
} else if (dd.add == e.getSource()) {// 计算加法
fuhao = 4;
zhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
}else if (e.getSource()==dd.backspace) {// 退格 得到里面的值.从最后的一位开始删除
StringBuffer sb = new StringBuffer(dd.tf.getText());
int changdu = sb.length();
if (changdu > 0) {
sb.deleteCharAt(changdu - 1);// 删除的是最后的一位
dd.tf.setText(sb.toString());
} else {
dd.tf.setText("");
}
} else if (dd.CE == e.getSource()) {// 清零
zhi = 0.0;
nextzhi = 0.0;
sum = 0.0;
dd.tf.setText("");
}else if (dd.C == e.getSource()) {// 清零
zhi = 0.0;
nextzhi = 0.0;
sum = 0.0;
dd.tf.setText("");
}else if (dd.b0 == e.getSource()) {
dd.tf.setText(dd.tf.getText() + "0");
} else if (dd.eql == e.getSource()) {// 等号;
nextzhi = Double.valueOf(dd.tf.getText());// 得到了文本框里的值;
dd.tf.setText("");
if (fuhao == 1) {// 计算的是乘法;
sum = zhi * nextzhi;
dd.tf.setText(sum + "");
} else if (fuhao == 2) {// 计算除法
if(nextzhi==0){
dd.tf.setText("error");
}
else{
sum = zhi / nextzhi;
dd.tf.setText(String.valueOf(sum));
}
//dd.tf.setText(sum + "");
} else if (fuhao == 3) {// 计算减法
sum = zhi - nextzhi;
dd.tf.setText(sum + "");
} else if (fuhao == 4) {// 符号为四算的是加法;
sum = zhi + nextzhi;
dd.tf.setText(String.valueOf(sum));
}
}
}
}