java编写的计算器

package lee.com.tool;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class calculator {

 private JTextField textField;
 private JFrame frame;
 private String result;   //表示用算后的结果变量
 private String usetype;   //用算类型 及 加,减,乘,除 和空,空表示没用算
 private boolean tabflag=false; // 来表示数字是否是独立的 及tabflag=false连续输入的数字按钮会被看成是一个数字
 private String rvresult="0";   //表示要进行用算前的变量

 /**
  * Launch the application
  * @param muscilee
  */
 public static void main(String args[]) {
  try {
   calculator window = new calculator();
   window.frame.setVisible(true);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 /**
  * Create the application
  */
 public calculator() {
  initialize();
 }

 /**
  * Initialize the contents of the frame
  */
 private void initialize() {
  frame = new JFrame("musiclee计算器");
  frame.setResizable(false);
  frame.setAlwaysOnTop(true);
  frame.getContentPane().setLayout(null);
  frame.setBounds(100, 100, 372, 323);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  textField = new JTextField();
  textField.setEditable(false);
  textField.setBounds(53, 22, 275, 23);
  frame.getContentPane().add(textField);

  final JButton button = new JButton();
  button.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=1;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
    
   }
  });
  button.setText("1");
  button.setBounds(53, 67, 51, 27);
  frame.getContentPane().add(button);

  final JButton button_1 = new JButton();
  button_1.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=2;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_1.setText("2");
  button_1.setBounds(110, 67, 51, 27);
  frame.getContentPane().add(button_1);

  final JButton button_2 = new JButton();
  button_2.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=3;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_2.setText("3");
  button_2.setBounds(167, 67, 51, 27);
  frame.getContentPane().add(button_2);

  final JButton button_3 = new JButton();
  button_3.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=4;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_3.setText("4");
  button_3.setBounds(53, 114, 51, 27);
  frame.getContentPane().add(button_3);

  final JButton button_4 = new JButton();
  button_4.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=5;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_4.setText("5");
  button_4.setBounds(110, 114, 51, 27);
  frame.getContentPane().add(button_4);

  final JButton button_5 = new JButton();
  button_5.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=6;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_5.setText("6");
  button_5.setBounds(167, 114, 51, 27);
  frame.getContentPane().add(button_5);

  final JButton button_6 = new JButton();
  button_6.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=7;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_6.setText("7");
  button_6.setBounds(53, 161, 51, 27);
  frame.getContentPane().add(button_6);

  final JButton button_7 = new JButton();
  button_7.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=8;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_7.setText("8");
  button_7.setBounds(110, 161, 51, 27);
  frame.getContentPane().add(button_7);

  final JButton button_8 = new JButton();
  button_8.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=9;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_8.setText("9");
  button_8.setBounds(167, 161, 51, 27);
  frame.getContentPane().add(button_8);

  final JButton button_9 = new JButton();
  button_9.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    int num=0;
    doButtonShow(tabflag,num,"num");
    tabflag=false;
   }
  });
  button_9.setText("0");
  button_9.setBounds(53, 205, 108, 27);
  frame.getContentPane().add(button_9);

  final JButton button_10 = new JButton();
  button_10.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    doButtonShow(tabflag,0,"Nod");
    tabflag=false;
   }
  });
  button_10.setText(".");
  button_10.setBounds(167, 205, 51, 27);
  frame.getContentPane().add(button_10);

  final JButton button_11 = new JButton();
  button_11.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    tabflag=true;
    usetype="puls";
    rvresult=textField.getText();
    
   }
  });
  button_11.setText("+");
  button_11.setBounds(230, 72, 45, 69);
  frame.getContentPane().add(button_11);

  final JButton button_12 = new JButton();
  button_12.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    tabflag=true;
    usetype="multiply";
    rvresult=textField.getText();
    result=rvresult;
   }
  });
  button_12.setText("*");
  button_12.setBounds(230, 161, 45, 69);
  frame.getContentPane().add(button_12);

  final JButton button_13 = new JButton();
  button_13.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    tabflag=true;
    usetype="minus";
    rvresult=textField.getText();
    result=rvresult;
   }
  });
  button_13.setText("-");
  button_13.setBounds(281, 72, 45, 69);
  frame.getContentPane().add(button_13);

  final JButton button_14 = new JButton();
  button_14.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    tabflag=true;
    usetype="division";
    rvresult=textField.getText();
   }
  });
  button_14.setText("/");
  button_14.setBounds(281, 161, 45, 69);
  frame.getContentPane().add(button_14);

  final JButton button_15 = new JButton();
  button_15.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) { 
    result=doResult();  
    textField.setText(result);
    tabflag=true;
    usetype="";
   }
  });
  button_15.setText("=");
  button_15.setBounds(53, 249, 97, 27);
  frame.getContentPane().add(button_15);

  final JButton button_16 = new JButton();
  button_16.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    doButtonShow(tabflag,0,"minus");
    tabflag=false;
   }
  });
  button_16.setText("负");
  button_16.setBounds(167, 251, 51, 23);
  frame.getContentPane().add(button_16);

  final JButton resetButton = new JButton();
  resetButton.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
      result=null;  
      usetype=null;  
      tabflag=false;
      rvresult="0";
      textField.setText(result);
   }
  });
  resetButton.setText("reset");
  resetButton.setBounds(229, 236, 99, 40);
  frame.getContentPane().add(resetButton);
 }
 
 public void doButtonShow(boolean flag,int num,String nodORminus)
 {
  String tstr;
  tstr=textField.getText();
  if(flag)
  {
   textField.setText(String.valueOf(num));
   result=String.valueOf(num);
  }else{
   if(nodORminus.equals("Nod"))
   {
    if(tstr.indexOf(".")==-1)
    {
     tstr=tstr+".";
    }
    textField.setText(tstr.trim());
    result=tstr;
   }else if(nodORminus.equals("minus"))
   {
    if(tstr.indexOf("-")==-1)
    {
     tstr="-"+tstr;
    }
    textField.setText(tstr.trim());
    result=tstr;
   }
   else{
    tstr=tstr+String.valueOf(num);
    textField.setText(tstr.trim());
    result=tstr;
   }
  }
 }
 public String doUse(double frist,double secend,String type)
 {
  this.tabflag=true;
  double res=0;
  if(type.equals("puls"))
  {
   res=frist+secend;
  }else if(type.equals("minus"))
  {
   res=frist-secend;
  }
  else if(type.equals("multiply"))
  {
   res=frist*secend;
  }
  else if(type.equals("division"))
  {
   res=frist/secend;
  }
  return String.valueOf(res);
 }
 public String doResult()
 {
  Double nowvl=Double.valueOf(textField.getText());
  String tempStr;
  if(usetype.length()!=0)
  {
   tempStr=doUse(Double.valueOf(rvresult),nowvl,usetype);
  }else{
   tempStr=textField.getText();
  }
  return tempStr;
  
 }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值