import java.awt.*;import java.awt.event.*;import javax.swing.*;public class SimpleCalc extendsJFrame{private static final long serialVersionUID = 1L;
String[] labels= {"←","CE","±","√","7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};
JButton[] btn;
JTextField tf;
Double n1= 0.0, n2 = 0.0;
String opt= "";
SimpleCalc(String name)
{super(name);this.setVisible(true);this.setBounds(400,300,300,400);this.addWindowListener(newWindowAdapter()
{public voidwindowClosing(WindowEvent e)
{
System.exit(0);
}
});
}public voidinit()
{
tf= newJTextField();
tf.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
tf.setFont(new Font("宋体", 30,20));
btn= newJButton[labels.length];for(int i=0;i
{
btn[i]= newJButton(labels[i]);
btn[i].setForeground(Color.blue);//System.out.print(btn[i].getActionCommand()+" ");
}
JPanel p= newJPanel();
p.setLayout(new GridLayout(5,5,3,3));for(int i=0;i
p.add(btn[i]);
this.add(BorderLayout.NORTH,tf);this.add(BorderLayout.CENTER,p);this.pack();for(int i=0;i
btn[i].addActionListener(newMonitor());
}public static voidmain(String[] args) {//TODO Auto-generated method stub
new SimpleCalc("java简易计算器").init();
}class Monitor implementsActionListener
{
@Overridepublic voidactionPerformed(ActionEvent e) {try{
String cmd=e.getActionCommand();if(cmd.equals("0")||cmd.equals("1")||cmd.equals("2")||cmd.equals("3")||cmd.equals("4")||cmd.equals("5")||cmd.equals("6")||cmd.equals("7")||cmd.equals("8")||cmd.equals("9"))
{
tf.setText(tf.getText().trim()+e.getActionCommand());
n1=Double.parseDouble(tf.getText().trim());
}if(cmd.equals("←"))
{
tf.setText(tf.getText().trim().substring(0,tf.getText().trim().length()-1));
}else if(cmd.equals("CE"))
{
tf.setText("");
}else if(cmd.equals("±"))
{
n1=Double.parseDouble(tf.getText().trim());
tf.setText(-n1+"");
}else if(cmd.equals("√"))
{
n1=Double.parseDouble(tf.getText().trim());
tf.setText(Math.sqrt(n1)+"");
}else if(cmd.equals("+"))
{
n2=Double.parseDouble(tf.getText().trim());
opt= "+";
tf.setText("");
}else if(cmd.equals("-"))
{
opt= "-";
n2=Double.parseDouble(tf.getText().trim());
tf.setText("");
}else if(cmd.equals("*"))
{
opt= "*";
n2=Double.parseDouble(tf.getText().trim());
tf.setText("");
}else if(cmd.equals("/"))
{
opt= "/";
n2=Double.parseDouble(tf.getText().trim());
tf.setText("");
}else if(cmd.equals("."))
{if(tf.getText().trim().indexOf(".") != -1) //字符串中已经包含了小数点不做任何操作
{
}else //如果没有小数点
{if(tf.getText().trim().equals("0"))//如果开始为0
{
tf.setText(("0"+e.getActionCommand()).toString());
}else if(tf.getText().trim().equals(""))//如果初时显示为空不做任何操作
{
}else{
tf.setText((tf.getText()+e.getActionCommand()).toString());
}
}
}else if(cmd.equals("="))
{if(opt.equals("+"))
tf.setText((n2+n1)+"");else if(opt.equals("-"))
tf.setText((n2-n1)+"");else if(opt.equals("*"))
tf.setText((n2*n1)+"");else if(opt.equals("/"))
{if(n1 == 0)
tf.setText("除数不能为0");elsetf.setText((n2/n1)+"");
}
}
}catch(Exception ee){}
}
}
}