现在的位置: 首页 > 综合 > 正文

java–简易计算器图形实现

2014年02月09日 ⁄ 综合 ⁄ 共 3156字 ⁄ 字号 评论关闭

用java编写简易计算机很容易,但要实现图形化,就要增加一些组件,需要用到Applet

源代码如下:

package applet;

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class MicroComputer extends Applet implements ActionListener{
 Panel buttonPanel;
 TextField tf;
 Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,bdot,bplus,bsub,bdiv,bmulti,bequal;
 String onDisplay="";//显示文本框中的字符串
 boolean isDotPressed=false;//.是否按下
 float input;//通过按键输入的数
 float input1,input2;//计算用的操作数
 char input3;//操作符
 float result;//计算结果
 int times=1;
 public void init(){
  setLayout(new BorderLayout(5,5));
  tf=new TextField(30);
  add(tf,BorderLayout.NORTH);
  buttonPanel=new Panel();
  buttonPanel.setLayout(new GridLayout(4,4,5,5));
  add(buttonPanel,BorderLayout.CENTER);
  b1=new Button("7");
  buttonPanel.add(b1);
  b1.addActionListener(this);
  b1.setActionCommand("7");
  b2=new Button("8");
  buttonPanel.add(b2);
  b2.addActionListener(this);
  b2.setActionCommand("8");
  b3=new Button("9");
  buttonPanel.add(b3);
  b3.addActionListener(this);
  b3.setActionCommand("9");
  bplus=new Button("/");
  buttonPanel.add(bplus);
  bplus.addActionListener(this);
  bplus.setActionCommand("/");
  b4=new Button("4");
  buttonPanel.add(b4);
  b4.addActionListener(this);
  b4.setActionCommand("4");
  b5=new Button("5");
  buttonPanel.add(b5);
  b5.addActionListener(this);
  b5.setActionCommand("5");
  b6=new Button("6");
  buttonPanel.add(b6);
  b6.addActionListener(this);
  b6.setActionCommand("6");
  bsub=new Button("*");
  buttonPanel.add(bsub);
  bsub.addActionListener(this);
  bsub.setActionCommand("*");
  b7=new Button("1");
  buttonPanel.add(b7);
  b7.addActionListener(this);
  b7.setActionCommand("1");
  b8=new Button("2");
  buttonPanel.add(b8);
  b8.addActionListener(this);
  b8.setActionCommand("2");
  b9=new Button("3");
  buttonPanel.add(b9);
  b9.addActionListener(this);
  b9.setActionCommand("3");
  bmulti=new Button("-");
  buttonPanel.add(bmulti);
  bmulti.addActionListener(this);
  bmulti.setActionCommand("-");
  b0=new Button("0");
  buttonPanel.add(b0);
  b0.addActionListener(this);
  b0.setActionCommand("0");
  bdot=new Button(".");
  buttonPanel.add(bdot);
  bdot.addActionListener(this);
  bdot.setActionCommand(".");
  bequal=new Button("=");
  buttonPanel.add(bequal);
  bequal.addActionListener(this);
  bequal.setActionCommand("=");
  bdiv=new Button("+");
  buttonPanel.add(bdiv);
  bdiv.addActionListener(this);
  bdiv.setActionCommand("+");
  
 }
 @Override
 public void actionPerformed(ActionEvent e) {
  String str=e.getActionCommand();
  char b=str.charAt(0);
  switch(b){
  case '0' :
  case '1' :
  case '2' :
  case '3' :
  case '4' :
  case '5' :
  case '6' :
  case '7' :
  case '8' :
  case '9' : onDisplay+=b;
  input=input*10+Integer.parseInt(str);
  if(isDotPressed) times*=10;
  tf.setText(onDisplay);
  break;
  case '.' : onDisplay+=b;
  isDotPressed=true;
  tf.setText(onDisplay);
  break;
  case '+' :
  case '-' :
  case '*' :
  case '/' : input3=b;
  input1=input/times;
  onDisplay="";
  times=1;
  isDotPressed=false;
  input=0;
  break;
  case '=': input2=input/times;
  switch(input3){
  case '+' :  result=input1+input2; break;
  case '-' :  result=input1-input2; break;
  case '*' :  result=input1*input2; break;
  case '/' :  result=input1/input2; break;
  }
  tf.setText(Float.toString(result));
  onDisplay="";
  times=1;
  isDotPressed=false;
  input=0;
  break;
  }
 }

 

}

抱歉!评论已关闭.