计算器

2015/4/29 18:52:47 焉zhi寐..suo巄舚彳 2015/4/29 18:52:47

对方已成功接收了您发送的离线文件“git命令.txt”(1.83KB)。 16:55:46 刘亚楠 2015/5/17 16:55:46
package com.main; import java.awt.Button; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Calculator extends WindowAdapter implements ActionListener {  private double result = 0, data1 = 0, radixPointDepth = 1;  private boolean radixPointIndicate = false, resultIndicate = false;  private char prec = '+';  private Frame f;//整个框架  private TextField tf;//文本域  private Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14,    b15, b16, b17;//一些按钮  private Panel p;
 static public void main(String args[]) {   Calculator de = new Calculator();   de.go();  }
 public void go() {   f = new Frame("计算器");   p = new Panel();   p.setLayout(new GridLayout(4, 4));//布局   tf = new TextField(30);//30个字符   b1 = new Button("7");//添加按钮,下同   b2 = new Button("8");   b3 = new Button("9");   b4 = new Button("+");   b5 = new Button("4");   b6 = new Button("5");   b7 = new Button("6");   b8 = new Button("-");   b9 = new Button("1");   b10 = new Button("2");   b11 = new Button("3");   b12 = new Button("*");   b13 = new Button("0");   b14 = new Button(".");   b15 = new Button("=");   b16 = new Button("/");   b17 = new Button("清零");   f.add(tf, "North");   f.add(p, "Center");   f.add(b17, "South");   p.add(b1);   p.add(b2);   p.add(b3);   p.add(b4);   p.add(b5);   p.add(b6);   p.add(b7);   p.add(b8);   p.add(b9);   p.add(b10);   p.add(b11);   p.add(b12);   p.add(b13);   p.add(b14);   p.add(b15);   p.add(b16);   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);   b10.addActionListener(this);   b11.addActionListener(this);   b12.addActionListener(this);   b13.addActionListener(this);   b14.addActionListener(this);   b15.addActionListener(this);   b16.addActionListener(this);   b17.addActionListener(this);   f.addWindowListener(this);   f.setSize(250, 190);   f.setVisible(true);  }
 public void actionPerformed(ActionEvent e) {//事件触发   String s;   s = e.getActionCommand();   switch (s.charAt(0)) {//得到字符   case '0'://如果是数字   case '1':   case '2':   case '3':   case '4':   case '5':   case '6':   case '7':   case '8':   case '9':    if (resultIndicate) {     result = 0;     data1 = 0;     prec = '+';    }    Integer Int1 = new Integer(s);    if (radixPointIndicate) {     radixPointDepth = radixPointDepth / 10;     data1 = data1 + (Int1.intValue()) * radixPointDepth;    } else {     data1 = data1 * 10 + (Int1.intValue());    }    Double displayNumber = new Double(data1);    tf.setText(displayNumber.toString());    resultIndicate = false;    break;   case '+'://如果是符号   case '-':   case '*':   case '/':   case '=':    if (s.charAt(0) != '=' && resultIndicate) {     prec = s.charAt(0);     resultIndicate = false;    } else {     switch (prec) {     case '+':      result = result + data1;      break;     case '-':      result = result - data1;      break;     case '*':      result = result * data1;      break;     case '/':      result = result / data1;      break;     }    }    radixPointIndicate = false;    radixPointDepth = 1;    displayNumber = new Double(result);    tf.setText(displayNumber.toString());    if (s.charAt(0) != '=') {     data1 = 0;     prec = s.charAt(0);    } else {     resultIndicate = true;    }    break;   case '.':    radixPointIndicate = true;    break;   }   if (s.equals("清零")) {//如果是清零    result = 0;    data1 = 0;    radixPointDepth = 1;    tf.setText("");   }  }
 public void windowClosing(WindowEvent e) {   System.exit(0);  } }
 
 
运行截图
 
 
 
 
posted @ 2015-05-17 17:08  若即若离233  阅读(173)  评论(5编辑  收藏  举报