用java写的计算器

来源:互联网 发布:稚优泉口红知乎 编辑:程序博客网 时间:2024/05/16 11:59

//这个可以直接在第一个文本框中输入一个表达式,像“123.123 + 456.456"这样,点“OK”,可直接在
//第二个文本框中显示结果,
//在程序中用了异常处理,小的错误都能处理
import java.awt.*;
import java.lang.Float;
import java.awt.event.*;
public class Try1 implements ActionListener
{
 Frame f;
 TextField tf1,tf2,tf4;
 Button b2,b3;
 Label lc;
 public void print()
 {
  f=new Frame("Caoxin");
  f.setSize(500,150);
  f.setLocation(320,240);
  f.setBackground(Color.LIGHT_GRAY);
  f.setLayout(new FlowLayout(FlowLayout.LEFT));
  tf1=new TextField(30);
  tf1.setEditable(true);
  f.add(tf1);
  lc=new Label("=");
  f.add(lc);
  b3=new Button("OK!");
  f.add(b3);
  tf2=new TextField(20);
  f.add(tf2);
  b2=new Button("CE");
  f.add(b2);
  tf4=new TextField(30);
  tf4.setEditable(false);
  f.add(tf4);
  b3.addActionListener(this);
  b2.addActionListener(this);
  f.addWindowListener(new Close());
  f.setVisible(true);
 }
 public void actionPerformed(ActionEvent e)
 {
  
  
  if(e.getSource()==b3)
  {
   try{
      String a=tf1.getText();
                  int i,j;
                  if(a.indexOf("*")!=-1)
                  {
                   i=a.indexOf("*");
                    float a1=Float.parseFloat(a.substring(0,i));
                    float a2=Float.parseFloat(a.substring(i+1));
                    String d;
                    d=Float.toString(a1*a2);
                    tf2.setText(d);
                  }
                  if(a.indexOf("/")!=-1)
                  {
                   i=a.indexOf("/");
                    float a1=Float.parseFloat(a.substring(0,i));
                    float a2=Float.parseFloat(a.substring(i+1));
                    String d;
                    d=Float.toString(a1/a2);
                    tf2.setText(d);
                    if(a2==0)
                    tf2.setText("除数不能为零!");
                  }
                  if(a.indexOf("-")!=-1)
                  {
                   i=a.indexOf("-");
                    float a1=Float.parseFloat(a.substring(0,i));
                    float a2=Float.parseFloat(a.substring(i+1));
                    String d;
                    d=Float.toString(a1-a2);
                    tf2.setText(d);
                  }
                  if(a.indexOf("+")!=-1)
                  {
                   i=a.indexOf("+");
                    float a1=Float.parseFloat(a.substring(0,i));
                    float a2=Float.parseFloat(a.substring(i+1));
                    String d;
                    d=Float.toString(a1+a2);
                    tf2.setText(d);
                  }
                  else
                  {
                   tf4.setText("输入错误,可能不含运算符!");
                  }
                }
              catch(Exception f)
                {
                 tf4.setText("输入错误");
                }
  }
  else
  {
      tf1.setText("");
      tf2.setText("");
      tf4.setText("请重新输入数据!");
     }
 }
 public static void main(String arg[])
 {
  (new Try1()).print();
 }
}
class Close extends WindowAdapter
{
 public void windowClosing(WindowEvent e)
 {
  System.exit(0);
 }
}

此程序还有好多不足,仅供学习参考

大家可以再补充一下,欢迎指教

原创粉丝点击