当前位置: 移动技术网 > IT编程>开发语言>Java > java实现简单的计算器类实例

java实现简单的计算器类实例

2019年07月22日  | 移动技术网IT编程  | 我要评论

本文实例讲述了java实现简单的计算器类。分享给大家供大家参考。具体如下:

package chap;
import java.awt.borderlayout;
import java.awt.color;
import java.awt.flowlayout;
import java.awt.gridlayout;
import java.awt.event.actionevent;
import java.awt.event.actionlistener;
import java.text.decimalformat;
import javax.swing.jbutton;
import javax.swing.jframe;
import javax.swing.jpanel;
import javax.swing.jtextfield;
public class calculator {
  private jframe frame;
  private jpanel panel,panelkeys,panelkeys_up,panelkeys_down;
  private jtextfield textcomputer;//计算区域
  private jbutton buttonbk,buttonc;//退格键和清零键
  private jbutton button[];//数字键组
  private jbutton buttondot,buttonaddsub,buttonadd,buttonsub,buttonmul,buttondiv,button1,button2,button3,buttonequal;
  private double result;//计算结果
  private final short add = 1;
  private final short sub = 2;
  private final short mul = 3;
  private final short div = 4;
  private short operator = -1;//运算符
  public calculator(){
    frame = new jframe("计算机");
    frame.setsize(400, 250);
    panel = new jpanel();//全局面板
    panel.setvisible(true);
    frame.setvisible(true);
    frame.getcontentpane().add(panel);
    actionlistener listener = new computeractionlistener();//按键监听器
    //计算区
    textcomputer = new jtextfield(15);
    textcomputer.settext("");
    textcomputer.seteditable(false);
    textcomputer.setbackground(new color(255,255,255));
    //功能键上半部分
    panelkeys_up = new jpanel();
    panelkeys_up.setlayout(new flowlayout(flowlayout.right));
    buttonbk = new jbutton("backspace");
    buttonbk.setforeground(new color(255,0,0));
    buttonc = new jbutton("c");
    buttonc.setforeground(new color(255,0,0));
    buttonbk.addactionlistener(listener);
    buttonc.addactionlistener(listener);
    panelkeys_up.add(buttonbk);
    panelkeys_up.add(buttonc);
    //功能键下半部分
    panelkeys_down = new jpanel();
    panelkeys_down.setlayout(new gridlayout(4,5));
    button = new jbutton[10];
    for(int i = 0;i < button.length;i++){
      button[i] = new jbutton(integer.tostring(i));
      button[i].setforeground(new color(255,0,0));
    }
    buttonaddsub = new jbutton("+/-");
    buttonaddsub.setforeground(new color(255,0,0));
    buttonadd = new jbutton("+");
    buttonadd.setforeground(new color(255,0,0));
    buttonsub = new jbutton("-");
    buttonsub.setforeground(new color(255,0,0));
    buttonmul = new jbutton("*");
    buttonmul.setforeground(new color(255,0,0));
    buttondiv = new jbutton("/");
    buttondiv.setforeground(new color(255,0,0));
    button1 = new jbutton();
    button2 = new jbutton();
    button3 = new jbutton();
    button1.setforeground(new color(255,0,0));
    button2.setforeground(new color(255,0,0));
    button3.setforeground(new color(255,0,0));
    buttonequal = new jbutton("=");
    buttonequal.setforeground(new color(255,0,0));
    buttonaddsub.addactionlistener(listener);
    buttonadd.addactionlistener(listener);
    buttonsub.addactionlistener(listener);
    buttonmul.addactionlistener(listener);
    buttondiv.addactionlistener(listener);
    buttonequal.addactionlistener(listener);
    for(int i = 0 ; i <=9 ; i++){
      button[i].addactionlistener(listener);
    }
    for(int i = 0 ; i <=9 ; i++){
      panelkeys_down.add(button[i]);
    }
    panelkeys_down.add(buttonaddsub);
    panelkeys_down.add(buttonadd);
    panelkeys_down.add(buttonsub);
    panelkeys_down.add(buttonmul);
    panelkeys_down.add(buttondiv);
    panelkeys_down.add(buttonequal);
    panel.setlayout(new borderlayout());
    panel.add(textcomputer,borderlayout.north);
    panel.add(panelkeys_up,borderlayout.center);
    panel.add(panelkeys_down,borderlayout.south);
  }
  class computeractionlistener implements actionlistener{
    @override
    public void actionperformed(actionevent event) {
      // todo auto-generated method stub
      object keybutton = event.getsource();
      string text = textcomputer.gettext();
      decimalformat df = new decimalformat("0.###########");
      //backspace
      if(keybutton == buttonbk && text.length() > 0){
        textcomputer.settext(text.substring(0,text.length()-1));
      }
      //c键
      if(keybutton == buttonc){
        result = 0;
        textcomputer.settext("");
      }
      //数字键
      for(int i=0;i<10;i++){
        if(keybutton == button[i]){
          textcomputer.settext(text+i);
        }
      }
      if(keybutton == buttonadd){
        operator = 1;
      }
      if(keybutton == buttonsub){
        operator = 2;
      }
      if(keybutton == buttonmul){
        operator = 3;
      }
      if(keybutton == buttondiv){
        operator = 4;
      }
      //符号键
      if(keybutton == buttonadd || keybutton == buttonsub || keybutton == buttonmul || keybutton == buttondiv || keybutton == buttonequal){
        switch(operator){
        case add:
          result += double.parsedouble(text);
          break;
        case sub:
          result -=double.parsedouble(text);
          break;
        case mul:
          result *=double.parsedouble(text);
          break;
        case div:
          result /=double.parsedouble(text);
          break;
        default:
          result = double.parsedouble(text);
        }
        textcomputer.settext("");
      }
      if(keybutton == buttonequal){
        textcomputer.settext(string.valueof(result));
      }
    }
  }
  public static void main(string args[]){
    new calculator();
  }
}

希望本文所述对大家的java程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网