Frame f;Panel p1,p2,p3,p4,p5,p6;TextField tf1,tf2;Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;Button bBackspace,bCE,bC,bMR,bMS,bMC,bM;java计算器import java.awt.*;import java.awt.event.*;pub...    
java 计算器代码
    这个是最合适你了!
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class Calculator extends JFrame { 
private Container container; 
private GridBagLayout layout; 
private GridBagConstraints constraints; 
private JTextField displayField;//计算结果显示区 
private String lastCommand;//保存+,-,*,/,=命令 
private double result;//保存计算结果 
private boolean start;//判断是否为数字的开始 
public Calculator() { 
super("计算器"); 
container=getContentPane(); 
layout=new GridBagLayout(); 
container.setLayout(layout); 
constraints=new GridBagConstraints(); 
start=true; 
result=0; 
lastCommand = "="; 
displayField=new JTextField(20); 
displayField.setText("0.0");
displayField.setcolor(red);
displayField.setHorizontalAlignment(JTextField.RIGHT); 
constraints.gridx=0; 
constraints.gridy=0; 
constraints.gridwidth=4; 
constraints.gridheight=1; 
constraints.fill=GridBagConstraints.BOTH; 
constraints.weightx=100; 
constraints.weighty=100; 
layout.setConstraints(displayField,constraints); 
container.add(displayField); 
ActionListener insert = new InsertAction(); 
ActionListener command = new CommandAction(); 
addButton("7",0,2,1,1,insert); 
addButton("8",1,2,1,1,insert); 
addButton("9",2,2,1,1,insert); 
addButton("/",3,5,1,1,command); 
addButton("4",0,3,1,1,insert); 
addButton("5",1,3,1,1,insert); 
addButton("6",2,3,1,1,insert); 
addButton("*",3,4,1,1,command); 
addButton("1",0,4,1,1,insert); 
addButton("2",1,4,1,1,insert); 
addButton("3",2,4,1,1,insert); 
addButton("-",3,3,1,1,command); 
addButton("0",1,5,1,1,insert); 
addButton("=",2,5,1,1,command); 
addButton(".",0,5,1,1,insert); 
addButton("+",3,2,1,1,command); 
setSize(180,200); 
setVisible(true); 
} 
private void addButton(String label,int row,int column,int with,int height,ActionListener listener) { 
JButton button=new JButton(label); 
constraints.gridx=row; 
constraints.gridy=column; 
constraints.gridwidth=with; 
constraints.gridheight=height; 
constraints.fill=GridBagConstraints.BOTH; 
button.addActionListener(listener); 
layout.setConstraints(button,constraints); 
container.add(button); 
} 
private class InsertAction implements ActionListener { 
public void actionPerformed(ActionEvent event) { 
String input=event.getActionCommand(); 
if (start) { 
displayField.setText(""); 
start=false; 
displayField.setText(displayField.getText()+input); 
} 
} 
} 
private class CommandAction implements ActionListener { 
public void actionPerformed(ActionEvent evt) { 
String command=evt.getActionCommand(); 
if(start) { 
lastCommand=command; 
}else { 
calculate(Double.parseDouble(displayField.getText())); 
lastCommand=command; 
start=true; 
} 
} 
} 
public void calculate(double x) { 
if (lastCommand.equals("+")) result+= x; 
else if (lastCommand.equals("-")) result-=x; 
else if (lastCommand.equals("*")) result*=x; 
else if (lastCommand.equals("/")) result/=x; 
else if (lastCommand.equals("=")) result=x; 
displayField.setText(""+ result); 
} 
public static void main(String []args) { 
Calculator calculator=new Calculator(); 
calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
}2008-01-06
/*
 * @(#)JCalculator.java 1.00 12/29/2009
 *
 * Email: light_warm@163.com
 */
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
/**
 * A simple calculator program.
 * <p>I saw this program in a QQ group, and help a friend correct it.</p>
 *
 * @author Singyuen Yip
 * @version 1.00 12/29/2009
 * @see JFrame
 * @see ActionListener
 */
public class JCalculator extends JFrame implementsActionListener {
    /**
     * Serial Version UID
     */
    private static final long serialVersionUID = -169068472193786457L;
    /**
     * This class help close the Window.
     * @author Singyuen Yip
     *
     */
    private class WindowCloser extends WindowAdapter {
       public void windowClosing(WindowEvent we) {
           System.exit(0);
       }
    }
 
    int i;
    // Strings for Digit & Operator buttons.
    private final String[] str = { "7", "8", "9", "/", "4","5", "6", "*", "1",
           "2", "3", "-", ".", "0", "=", "+" };
    // Build buttons.
    JButton[] buttons = new JButton[str.length];
    // For cancel or reset.
    JButton reset = new JButton("CE");
    // Build the text field to show the result.
    JTextField display = new JTextField("0");
   
    /**
     * Constructor without parameters.
     */
    public JCalculator() {
       super("Calculator");
       // Add a panel.
       JPanel panel1 = new JPanel(new GridLayout(4, 4));
       // panel1.setLayout(new GridLayout(4,4));
       for (i = 0; i < str.length; i++) {
           buttons[i] = new JButton(str[i]);
           panel1.add(buttons[i]);
       }
       JPanel panel2 = new JPanel(new BorderLayout());
       // panel2.setLayout(new BorderLayout());
       panel2.add("Center", display);
       panel2.add("East", reset);
       // JPanel panel3 = new Panel();
       getContentPane().setLayout(new BorderLayout());
       getContentPane().add("North", panel2);
       getContentPane().add("Center", panel1);
       // Add action listener for each digit & operator button.
       for (i = 0; i < str.length; i++)
           buttons[i].addActionListener(this);
       // Add listener for "reset" button.
       reset.addActionListener(this);
       // Add listener for "display" button.
       display.addActionListener(this);
       // The "close" button "X".
       addWindowListener(new WindowCloser());
       // Initialize the window size.
       setSize(800, 800);
       // Show the window.
       // show(); Using show() while JDK version is below 1.5.
       setVisible(true);
       // Fit the certain size.
       pack();
    }  
   
    public void actionPerformed(ActionEvent e) {
       Object target = e.getSource();
       String label = e.getActionCommand();
       if (target == reset)
           handleReset();
       else if ("0123456789.".indexOf(label) > 0)
           handleNumber(label);
       else
           handleOperator(label);
    }
    // Is the first digit pressed?
    boolean isFirstDigit = true;
    /**
     * Number handling.
     * @param key the key of the button.
     */
    public void handleNumber(String key) {
       if (isFirstDigit)
           display.setText(key);
       else if ((key.equals(".")) && (display.getText().indexOf(".") < 0))
           display.setText(display.getText() + ".");
       else if (!key.equals("."))
           display.setText(display.getText() + key);
       isFirstDigit = false;
    }
   
    /**
     * Reset the calculator.
     */
    public void handleReset() {
       display.setText("0");
       isFirstDigit = true;
       operator = "=";
    }
 
    double number = 0.0;
    String operator = "=";
   
    /**
     * Handling the operation.
     * @param key pressed operator's key.
     */
    public void handleOperator(String key) {
       if (operator.equals("+"))
           number += Double.valueOf(display.getText());
       else if (operator.equals("-"))
           number -= Double.valueOf(display.getText());
       else if (operator.equals("*"))
           number *= Double.valueOf(display.getText());
       else if (operator.equals("/"))
           number /= Double.valueOf(display.getText());
       else if (operator.equals("="))
           number = Double.valueOf(display.getText());
       display.setText(String.valueOf(number));
       operator = key;
       isFirstDigit = true;
    }
   
    public static void main(String[] args) {
       new JCalculator();
    }
}2015-12-17
这个代码很多人要,我也发了好多次了 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class Calculator extends JFrame { 
private Container container; 
private GridBagLayout layout; 
private GridBagConstraints constraints; 
private JTextField displayField;//计算结果显示区 
private String lastCommand;//保存+,-,*,/,=命令 
private double result;//保存计算结果 
private boolean start;//判断是否为数字的开始 
public Calculator() { 
super("Calculator"); 
container=getContentPane(); 
layout=new GridBagLayout(); 
container.setLayout(layout); 
constraints=new GridBagConstraints(); 
start=true; 
result=0; 
lastCommand = "="; 
displayField=new JTextField(20); 
displayField.setHorizontalAlignment(JTextField.RIGHT); 
constraints.gridx=0; 
constraints.gridy=0; 
constraints.gridwidth=4; 
constraints.gridheight=1; 
constraints.fill=GridBagConstraints.BOTH; 
constraints.weightx=100; 
constraints.weighty=100; 
layout.setConstraints(displayField,constraints); 
container.add(displayField); 
ActionListener insert = new InsertAction(); 
ActionListener command = new CommandAction(); 
addButton("Backspace",0,1,2,1,insert); 
addButton("CE",2,1,1,1,insert); 
addButton("C",3,1,1,1,insert); 
addButton("7",0,2,1,1,insert); 
addButton("8",1,2,1,1,insert); 
addButton("9",2,2,1,1,insert); 
addButton("/",3,2,1,1,command); 
addButton("4",0,3,1,1,insert); 
addButton("5",1,3,1,1,insert); 
addButton("6",2,3,1,1,insert); 
addButton("*",3,3,1,1,command); 
addButton("1",0,4,1,1,insert); 
addButton("2",1,4,1,1,insert); 
addButton("3",2,4,1,1,insert); 
addButton("-",3,4,1,1,command); 
addButton("0",0,5,1,1,insert); 
addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值 
addButton(".",2,5,1,1,insert); 
addButton("+",3,5,1,1,command); 
addButton("=",0,6,4,1,command); 
setSize(300,300); 
setVisible(true); 
} 
private void addButton(String label,int row,int column,int with,int height,ActionListener listener) { 
JButton button=new JButton(label); 
constraints.gridx=row; 
constraints.gridy=column; 
constraints.gridwidth=with; 
constraints.gridheight=height; 
constraints.fill=GridBagConstraints.BOTH; 
button.addActionListener(listener); 
layout.setConstraints(button,constraints); 
container.add(button); 
} 
private class InsertAction implements ActionListener { 
public void actionPerformed(ActionEvent event) { 
String input=event.getActionCommand(); 
if (start) { 
displayField.setText(""); 
start=false; 
if(input.equals("+/-")) 
displayField.setText(displayField.getText()+"-"); 
} 
if(!input.equals("+/-")) { 
if(input.equals("Backspace")) { 
String str=displayField.getText(); 
if(str.length()>0) 
displayField.setText(str.substring(0,str.length()-1)); 
}else if(input.equals("CE")||input.equals("C")) { 
displayField.setText("0"); 
start=true; 
}else 
displayField.setText(displayField.getText()+input); 
} 
} 
} 
private class CommandAction implements ActionListener { 
public void actionPerformed(ActionEvent evt) { 
String command=evt.getActionCommand(); 
if(start) { 
lastCommand=command; 
}else { 
calculate(Double.parseDouble(displayField.getText())); 
lastCommand=command; 
start=true; 
} 
} 
} 
public void calculate(double x) { 
if (lastCommand.equals("+")) result+= x; 
else if (lastCommand.equals("-")) result-=x; 
else if (lastCommand.equals("*")) result*=x; 
else if (lastCommand.equals("/")) result/=x; 
else if (lastCommand.equals("=")) result=x; 
displayField.setText(""+ result); 
} 
public static void main(String []args) { 
Calculator calculator=new Calculator(); 
calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
}2008-01-03
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame {
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
private JTextField displayField;//计算结果显示区
private String lastCommand;//保存+,-,*,/,=命令
private double result;//保存计算结果
private boolean start;//判断是否为数字的开始
public Calculator() {
super("Calculator");
container=getContentPane();
layout=new GridBagLayout();
container.setLayout(layout);
constraints=new GridBagConstraints();
start=true;
result=0;
lastCommand = "=";
displayField=new JTextField(20);
displayField.setHorizontalAlignment(JTextField.RIGHT);
constraints.gridx=0;
constraints.gridy=0;
constraints.gridwidth=4;
constraints.gridheight=1;
constraints.fill=GridBagConstraints.BOTH;
constraints.weightx=100;
constraints.weighty=100;
layout.setConstraints(displayField,constraints);
container.add(displayField);
ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();
addButton("Backspace",0,1,2,1,insert);
addButton("CE",2,1,1,1,insert);
addButton("C",3,1,1,1,insert);
addButton("7",0,2,1,1,insert);
addButton("8",1,2,1,1,insert);
addButton("9",2,2,1,1,insert);
addButton("/",3,2,1,1,command);
addButton("4",0,3,1,1,insert);
addButton("5",1,3,1,1,insert);
addButton("6",2,3,1,1,insert);
addButton("*",3,3,1,1,command);
addButton("1",0,4,1,1,insert);
addButton("2",1,4,1,1,insert);
addButton("3",2,4,1,1,insert);
addButton("-",3,4,1,1,command);
addButton("0",0,5,1,1,insert);
addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值
addButton(".",2,5,1,1,insert);
addButton("+",3,5,1,1,command);
addButton("=",0,6,4,1,command);
setSize(300,300);
setVisible(true);
}
private void addButton(String label,int row,int column,int with,int height,ActionListener listener) {
JButton button=new JButton(label);
constraints.gridx=row;
constraints.gridy=column;
constraints.gridwidth=with;
constraints.gridheight=height;
constraints.fill=GridBagConstraints.BOTH;
button.addActionListener(listener);
layout.setConstraints(button,constraints);
container.add(button);
}
private class InsertAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
String input=event.getActionCommand();
if (start) {
displayField.setText("");
start=false;
if(input.equals("+/-"))
displayField.setText(displayField.getText()+"-");
}
if(!input.equals("+/-")) {
if(input.equals("Backspace")) {
String str=displayField.getText();
if(str.length()>0)
displayField.setText(str.substring(0,str.length()-1));
}else if(input.equals("CE")||input.equals("C")) {
displayField.setText("0");
start=true;
}else
displayField.setText(displayField.getText()+input);
}
}
}
private class CommandAction implements ActionListener {
public void actionPerformed(ActionEvent evt) {
String command=evt.getActionCommand();
if(start) {
lastCommand=command;
}else {
calculate(Double.parseDouble(displayField.getText()));
lastCommand=command;
start=true;
}
}
}
public void calculate(double x) {
if (lastCommand.equals("+")) result+= x;
else if (lastCommand.equals("-")) result-=x;
else if (lastCommand.equals("*")) result*=x;
else if (lastCommand.equals("/")) result/=x;
else if (lastCommand.equals("=")) result=x;
displayField.setText(""+ result);
}
public static void main(String []args) {
Calculator calculator=new Calculator();
calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}2008-01-02
java计算器
import java.awt.*;
import java.awt.event.*;
public class Calculation extends WindowAdapter implements ActionListener
{
double dResult=0;
double dNowInput=0;
double dMemory;
int  n=0; //记载小数位数
int  nOperation=1; // 记录运算符类型
int  nBitsNum=0;  //记录总共输入的位数
boolean alreadyHaveDot=false; //已经有小数点?
boolean keyAvailable=true;
boolean alreadyClickedEqueal=false; //是否按下过"="?
boolean isTempNowInput=false; //是否在计算出结果后直接按运算符将结果赋给了当前输入值?
Frame f;
Panel p1,p2,p3,p4,p5,p6;
TextField tf1,tf2;
Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;
Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;
Button bBackspace,bCE,bC,bMR,bMS,bMC,bM;
java计算器
import java.awt.*;
import java.awt.event.*;
public class Calculation extends WindowAdapter implements ActionListener
{
double dResult=0;
double dNowInput=0;
double dMemory;
int  n=0; //记载小数位数
int  nOperation=1; // 记录运算符类型
int  nBitsNum=0;  //记录总共输入的位数
boolean alreadyHaveDot=false; //已经有小数点?
boolean keyAvailable=true;
boolean alreadyClickedEqueal=false; //是否按下过"="?
boolean isTempNowInput=false; //是否在计算出结果后直接按运算符将结果赋给了当前输入值?
Frame f;
Panel p1,p2,p3,p4,p5,p6;
TextField tf1,tf2;
Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;
Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;
Button bBackspace,bCE,bC,bMR,bMS,bMC,bM;
  
public void display()
{
  f=new Frame("计算器");
  f.setSize(280,213);
  f.setLocation(200,200);
  f.setBackground(Color.LIGHT_GRAY);
  f.setResizable(false);
  
  f.setLayout(new BorderLayout(3,3));
  
  p1=new Panel(new GridLayout(1,3,5,5));  //用于存放backspace,ce,c三键
  p2=new Panel(new GridLayout(4,5,5,5)); //用于存放数字区及附近共20键, 此处间隙设置可能不合理,以后调整
  p3=new Panel(new GridLayout(5,1,5,5)); //用于存放MC,MR,MS,M+键及显示M状态文本框,此处间隙设置可能不合理,以后调整
  p4=new Panel(new FlowLayout()); //用于存放p1,p2
  p5=new Panel(new FlowLayout());
  p6=new Panel(new FlowLayout());
  p4.add(p1);
  p4.add(p2);
  
  tf1=new TextField(35);      //存放显示区
  tf1.setText("0.");
  tf1.setEditable(false);
  p5.add(tf1);
  f.add(p5,BorderLayout.NORTH);
  f.add(p4,BorderLayout.CENTER);
  f.add(p3,BorderLayout.WEST);
  
  b1=new Button("1");
  b2=new Button("2");
  b3=new Button("3");
  b4=new Button("4");
  b5=new Button("5");
  b6=new Button("6");
  b7=new Button("7");
  b8=new Button("8");
  b9=new Button("9");
  b0=new Button("0");
  
  b1.addActionListener(this);
  b2.addActionListener(this);
  b3.addActionListener(this);
  b4.addActionListener(this);
  b5.addActionListener(this);
  b6.addActionListener(this);
  b7.addActionListener(this);
  b8.addActionListener(this);
  b9.addActionListener(this);
  b0.addActionListener(this);
  
  bDiv=new Button("/");
  bSqrt=new Button("sqrt");
  bMulti=new Button("*");
  bMinus=new Button("-");
  bPercent=new Button("%");
  bPlus=new Button("+");
  bReciprocal=new Button("1/x");
  bEqual=new Button("=");
  bDot=new Button(".");
  bNegative=new Button("+/-");
  
  bDiv.addActionListener(this);
  bSqrt.addActionListener(this);
  bMulti.addActionListener(this);
  bMinus.addActionListener(this);
  bPercent.addActionListener(this);
  bPlus.addActionListener(this);
  bReciprocal.addActionListener(this);
  bEqual.addActionListener(this);
  bDot.addActionListener(this);
  bNegative.addActionListener(this);
  
  p2.add(b7);
  p2.add(b8);
  p2.add(b9);
  p2.add(bDiv);
  p2.add(bSqrt);
  p2.add(b4);
  p2.add(b5);
  p2.add(b6);
  p2.add(bMulti);
  p2.add(bPercent);
  p2.add(b1);
  p2.add(b2);
  p2.add(b3);
  p2.add(bMinus);
  p2.add(bReciprocal);
  p2.add(b0);
  p2.add(bNegative);
  p2.add(bDot);
  p2.add(bPlus);
  p2.add(bEqual);
  
  bBackspace=new Button("Backspace");
  bCE=new Button("CE");
  bC=new Button("C");
  
  bBackspace.addActionListener(this);
  bCE.addActionListener(this);
  bC.addActionListener(this);
  
  p1.add(bBackspace); 
  p1.add(bCE);
  p1.add(bC);
  
  tf2=new TextField(2);
  tf2.setEnabled(false);
  tf2.setBackground(Color.LIGHT_GRAY);
  bMC=new Button("MC");
  bMR=new Button("MR");
  bMS=new Button("MS");
  bM=new Button("M+");
  
  bMC.addActionListener(this);
  bMR.addActionListener(this);
  bMS.addActionListener(this);
  bM.addActionListener(this);
  
  p6.add(tf2);
  p3.add(p6);
  p3.add(bMC);
  p3.add(bMR);
  p3.add(bMS);
  p3.add(bM);
  
  f.setVisible(true);
  f.addWindowListener(this);
  
}
public void actionPerformed(ActionEvent e)
{ 
  //key 0 to 9
  if(this.keyAvailable && e.getActionCommand().length()==1 && e.getActionCommand().compareTo("0")>=0 && e.getActionCommand().compareTo("9")<=0)
  {
   if(this.isTempNowInput)
   {
    this.dNowInput=0;
    this.isTempNowInput=false;
   }
   this.nBitsNum++; 
   if(this.alreadyHaveDot==false)
    this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand());
   else
   { 
    double temp=Double.parseDouble(e.getActionCommand());
    for(int i=this.n;i<0;i++)
    {     
     temp*=0.1;
    }
    this.dNowInput+=temp;
    this.n--;
   }
   this.tf1.setText(Double.toString(this.dNowInput));
  }
  // key dot
  if(this.keyAvailable && e.getActionCommand()==".")
  {
   if(this.alreadyHaveDot==false)
   {
    this.nBitsNum++;
    this.alreadyHaveDot=true;
    this.n=-1; 
   }
  }
  //key "+","-","*","/"
  if(this.keyAvailable && e.getActionCommand()=="+" || e.getActionCommand()=="-" || e.getActionCommand()=="*" || e.getActionCommand()=="/")
  { 
   if(this.alreadyClickedEqueal)
   {
    this.dNowInput=this.dResult;
    this.isTempNowInput=true;
   }
   else
   {
    switch(this.nOperation)
    {
     case 1: this.dResult+=this.dNowInput; break;
     case 2: this.dResult-=this.dNowInput; break;
     case 3: this.dResult*=this.dNowInput; break;
     case 4:
     {
      if(this.dNowInput==0)
      {
       tf1.setText("除数不能为零");
       this.keyAvailable=false;
      }
      else this.dResult=this.dResult/this.dNowInput;
     }
    }
    if(this.keyAvailable)tf1.setText(Double.toString(this.dResult));
    this.dNowInput=0; 
   }   
   if(e.getActionCommand()=="+")
   { 
    this.nOperation=1; 
   }
   if(e.getActionCommand()=="-")
   { 
    this.nOperation=2;
   }
   if(e.getActionCommand()=="*")
   {
    this.nOperation=3;
   }
   if(e.getActionCommand()=="/")
   {
    this.nOperation=4;
   }
   this.nBitsNum=0;
   this.alreadyClickedEqueal=false;
  }
  // key "+/-" 
  if(this.keyAvailable && e.getActionCommand()=="+/-")
  {
   this.dNowInput=0-this.dNowInput;
   tf1.setText(Double.toString(this.dNowInput));   
  }
  // key "C" 
  if(e.getActionCommand()=="C")
  {
   this.nBitsNum=0;
   this.dResult=0;
   this.dNowInput=0;
   this.alreadyHaveDot=false;
   this.n=0;
   this.nOperation=1;
   this.keyAvailable=true;
   this.alreadyClickedEqueal=false;
   tf1.setText("0.");
  }
  // key "CE"
  if(e.getActionCommand()=="CE")
  {
   this.nBitsNum=0;
   this.dNowInput=0;
   this.alreadyHaveDot=false;
   this.n=0;
   this.nOperation=1;
   this.keyAvailable=true;
   tf1.setText("0.");
  }
  
  // key "sqrt"
  if(this.keyAvailable && e.getActionCommand()=="sqrt")
  {
   if(this.alreadyClickedEqueal)
   {
    if(this.dResult>=0)
    {
     this.dResult=Math.sqrt(this.dResult);
     tf1.setText(Double.toString(this.dResult));
    }
    else
    {
     tf1.setText("函数输入无效");
     this.keyAvailable=false;
    }
   }
   else
   {
    if(this.dNowInput>=0)
    {
     this.dNowInput=Math.sqrt(this.dNowInput);
     tf1.setText(Double.toString(this.dNowInput));
    }
    else
    {
     tf1.setText("函数输入无效");
     this.keyAvailable=false;
    }
   } 
  }
  // key "1/x"
  if(this.keyAvailable && e.getActionCommand()=="1/x")
  {
   if(this.dNowInput==0)
   {
    tf1.setText("除数不能为零");
    this.keyAvailable=false;
   }
   else
   {
    this.dNowInput=1/this.dNowInput;
    tf1.setText(Double.toString(this.dNowInput));
   }
  }
  // key "="
  if(this.keyAvailable && e.getActionCommand()=="=")
  {
   this.alreadyClickedEqueal=true;
   switch(this.nOperation)
   {
    case 1: this.dResult+=this.dNowInput; break;
    case 2: this.dResult-=this.dNowInput; break;
    case 3: this.dResult*=this.dNowInput; break;
    case 4:
    {
     if(this.dNowInput==0)
     {
      tf1.setText("除数不能为零");
      this.keyAvailable=false;
     }
     else this.dResult=this.dResult/this.dNowInput;
    }
   }
   if(this.keyAvailable)tf1.setText(Double.toString(this.dResult));  
  }
  // key "MS"
  if(this.keyAvailable && e.getActionCommand()=="MS")
  {
   this.dMemory=this.dNowInput;
   if(this.dMemory!=0)
    tf2.setText("M");
  }
  // key "MC"
  if(this.keyAvailable && e.getActionCommand()=="MC")
  {
   this.dMemory=0;
   tf2.setText("");
  }
  // key "MR"
  if(this.keyAvailable && e.getActionCommand()=="MR")
  {
   this.dNowInput=this.dMemory;
   tf1.setText(Double.toString(this.dNowInput));
  }
  // key "M+"
  if(this.keyAvailable && e.getActionCommand()=="M+")
  {
   this.dMemory+=this.dNowInput;
   if(this.dMemory!=0)
    tf2.setText("M");
   else tf2.setText("");
  }
  // key "%"
  if(this.keyAvailable && e.getActionCommand()=="%")
  {
   this.dNowInput=(this.dResult*this.dNowInput)/100;
   tf1.setText(Double.toString(this.dNowInput));
  }
  // key "Backspace"
  if(this.keyAvailable && e.getActionCommand()=="Backspace")
  {
   if(!this.alreadyClickedEqueal){
    if(this.dNowInput!=0)
    {
     if(this.alreadyHaveDot)
     {
      if(this.n==-1)
      {
       this.alreadyHaveDot=false;
       this.n=0; 
      }
      else
      {
       String str,str1;
       str=tf1.getText();
       str1=str.substring(0,this.nBitsNum-1);
       this.nBitsNum--;
       this.n++;
       this.dNowInput=Double.parseDouble(str1);
       tf1.setText(Double.toString(this.dNowInput));      
      }
     }
     else
     {
      int temp;
      temp=(int)(this.dNowInput/10);
      this.dNowInput=(double)temp;
      tf1.setText(Double.toString(this.dNowInput));
     }
    }
   }
   }
}
public static void main(String args[])
{
  Calculation cal=new Calculation();
  cal.display();
}
public void windowClosing(WindowEvent e)
{
  System.exit(0);
}
}2008-01-04