import java.awt.*;
import java.awt.event.*;
public class jsq extends WindowAdapter implements ActionListener
{
String s[]={"0","1","2","3","4","5","6","7","8","9","+","-","*","/","=","C"};
Frame f;
Button b [] = new Button [16];
TextField t;
Panel p1,p2;
private static final char NULL = '\0';
private static final char JIA = '+';
private static final char JIAN = '-';
private static final char CHENG = '*';
private static final char CHU = '/';
private char operator = NULL;
private float answer=0,number=0;
private boolean isoperator=true;
public void display()
{
f=new Frame("计算器");
f.setResizable(false);
p1 = new Panel();
t = new TextField(20);
t.setText("0.0");
t.setEditable(false);
p1.add(t);
p2 = new Panel(new GridLayout(4,4,5,5));
for(int i=0;i<16;i++)
{
b[i] = new Button(s[i]);
p2.add(b[i]);
b[i].addActionListener(this);
}
f.add(p1,"North");
f.add(p2,"Center");
f.setLocation(300,200);
f.setSize(200,200);
f.setVisible(true);
f.addWindowListener(this);
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void actionPerformed(ActionEvent e)
{
Button B = (Button)e.getSource();
if(!B.getLabel().equals("=")&&!B.getLabel().equals("C")&&!B.getLabel().equals("+")
&&!B.getLabel().equals("-")&&!B.getLabel().equals("*")&&!B.getLabel().equals("/"))
{
if(isoperator==true)
t.setText("");
isoperator=false;
t.setText(t.getText()+B.getLabel());
}
else if(B.getLabel().equals("C"))
{
t.setText("");
answer=0;
number=0;
operator=NULL;
}
else
{
try
{
if ( operator == NULL )
{
answer = Float.valueOf(t.getText()).floatValue();//Integer.parseInt(t.getText());
}
else
{
answer = jisuan(Float.valueOf(t.getText()).floatValue());
}
if(B.getLabel().equals("="))
{
operator = NULL;
}
else if(B.getLabel().equals("+"))
{
operator = JIA;
}
else if(B.getLabel().equals("-"))
{
operator = JIAN;
}
else if(B.getLabel().equals("*"))
{
operator = CHENG;
}
else if(B.getLabel().equals("/"))
{
operator = CHU;
}
number = answer;
isoperator=true;
t.setText(""+answer);
}
catch (Exception ex)
{
}
}
}
//计算
float jisuan(float n)
{
switch ( operator ) {
case JIA:
answer = number + n;
break;
case JIAN:
answer = number - n;
break;
case CHENG:
answer = number * n;
break;
case CHU:
answer = number / n;
break;
}
return answer;
}
public static void main(String args[])
{
(new jsq()).display();
}
}