汇总代码:
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculater extends JFrame implements ActionListener{
String title="Calculator@(^-^)@";
Button button0=new Button("0");
Button button1=new Button("1");
Button button2=new Button("2");
Button button3=new Button("3");
Button button4=new Button("4");
Button button5=new Button("5");
Button button6=new Button("6");
Button button7=new Button("7");
Button button8=new Button("8");
Button button9=new Button("9");
Button button10=new Button(".");
Button button11=new Button("/");
Button button12=new Button("*");
Button button13=new Button("+");
Button button14=new Button("-");
Button button15=new Button("=");
Button button16=new Button("Clear");
boolean state=false;
static double result=0.0;
String operation;
JTextField TextFeild1=new JTextField();
JPanel panel1=new JPanel(new GridLayout(4,4,4,4));
JPanel panel2=new JPanel(new GridLayout(1,2,4,4));
JLabel label1=new JLabel("Copyright ©2015-2016 Easom, All Rights Reserved");
public Calculater(){
super();
this.setTitle(title);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setSize(500,200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new BorderLayout());
panel1.add(button1);panel1.add(button2);panel1.add(button3);panel1.add(button11);
panel1.add(button4);panel1.add(button5); panel1.add(button6);panel1.add(button12);
panel1.add(button7);panel1.add(button8);panel1.add(button9);panel1.add(button14);
panel1.add(button0);panel1.add(button10); panel1.add(button13);panel1.add(button15);
panel2.add(TextFeild1);panel2.add(button16);
button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);
button4.addActionListener(this);button5.addActionListener(this);button6.addActionListener(this);
button7.addActionListener(this);button8.addActionListener(this);button9.addActionListener(this);
button10.addActionListener(this);button11.addActionListener(this);button12.addActionListener(this);
button13.addActionListener(this);button14.addActionListener(this);button15.addActionListener(this);
button16.addActionListener(this);button0.addActionListener(this);
this.add(panel2,BorderLayout.NORTH);
this.add(panel1,BorderLayout.CENTER);
this.add(label1,BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
String label=e.getActionCommand();
switch(label){
case "1":TextFeild1.setText(TextFeild1.getText()+"1");state=true;break;
case "2":TextFeild1.setText(TextFeild1.getText()+"2");state=true;break;
case "3":TextFeild1.setText(TextFeild1.getText()+"3");state=true;break;
case "4":TextFeild1.setText(TextFeild1.getText()+"4");state=true;break;
case "5":TextFeild1.setText(TextFeild1.getText()+"5");state=true;break;
case "6":TextFeild1.setText(TextFeild1.getText()+"6");state=true;break;
case "7":TextFeild1.setText(TextFeild1.getText()+"7");state=true;break;
case "8":TextFeild1.setText(TextFeild1.getText()+"8");state=true;break;
case "9":TextFeild1.setText(TextFeild1.getText()+"9");state=true;break;
case ".":TextFeild1.setText(TextFeild1.getText()+".");state=true;break;
case "0":TextFeild1.setText(TextFeild1.getText()+"0");state=true;break;
default:break;
}
if("+".equals(label)){
result+=Double.valueOf(TextFeild1.getText());
System.out.println(result);
TextFeild1.setText("");
operation=label;
state=false;
}else if("-".equals(label)){
result-=Double.valueOf(TextFeild1.getText());
TextFeild1.setText("");
operation=label;
state=false;
}else if("=".equals(label)){
switch(operation){
case "+":result+=Double.valueOf(TextFeild1.getText());break;
case "-":result-=Double.valueOf(TextFeild1.getText());break;
case "/":result/=Double.valueOf(TextFeild1.getText());break;
case "*":result*=Double.valueOf(TextFeild1.getText());break;
}
TextFeild1.setText(String.valueOf(result));
}else if("/".equals(label)){
result=1;
result=Double.valueOf(TextFeild1.getText())/result;
TextFeild1.setText("");
operation=label;
}else if("*".equals(label)){
result=1;
result*=Double.valueOf(TextFeild1.getText());
TextFeild1.setText("");
operation=label;
}else if("Clear".equals(label)){
TextFeild1.setText("");
result=0.0;
operation="";
}
}
}