当前位置: 代码迷 >> Eclipse >> 容易的计算机程序出错
  详细解决方案

容易的计算机程序出错

热度:86   发布时间:2016-04-23 00:23:46.0
简单的计算机程序出错
import java.awt.*;
import java.applet.*;
public class Calculator extends Applet{
    TextField tfAnswer; //显示输入和结果的文本域
    Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision; //运算符按钮
    Button[] b=new Button[10];  //数字按钮
    String currentOp,preOp; //当前操作和上一步操作
    String foreText,backText; //当前输入和上一次输入
    boolean isFloat = false; //运算类型标志
    public void init() {
    Panel panel1=new Panel();  //实例化面板
    Panel panel2=new Panel();
    Panel panel3=new Panel();
    currentOp= new String(""); //实例化各组件
    preOp= new String("");
    foreText= new String("");
    backText= new String("");
    tfAnswer= new TextField(8);
    setBackground(Color.lightGray); //设置Applet背景色
    setForeground(Color.blue);   //设置Applet前景色      
       for(int i=9;i>=0;i--){
       b[i]=new Button(Integer.toString(i)); //实例化数字按钮
       panel2.add(b[i]); //增加按钮到面板
       }       
      bPoint= new Button("."); //实例化按钮
      bEqual= new Button("=");
      bEqual.setForeground(Color.red);   //设置按钮前景色
      bClear= new Button("清除");
      bClear.setForeground(Color.red);
      bDivision= new Button("/");
      bDivision.setForeground(Color.red);
      bMulti= new Button("*");
      bMulti.setForeground(Color.red);
      bMinus= new Button("-");
      bMinus.setForeground(Color.red);    
      bPlus= new Button("+");
      bPlus.setForeground(Color.red);   
      setLayout(new FlowLayout()); //设置Applet的布局管理器
      panel1.setLayout(new FlowLayout());
      panel2.setLayout(new GridLayout(4,3));
      panel3.setLayout(new GridLayout(4,1));
      panel1.add(tfAnswer); //增加组件到面板
      panel1.add(bClear);
      panel2.add(bPoint);
      panel2.add(bEqual);
      panel3.add(bPlus);
      panel3.add(bMinus);
      panel3.add(bMulti);
      panel3.add(bDivision);
      add(panel1); //增加组件到Applet
      add(panel2);
      add(panel3); 
    }
    public boolean action(Event e, Object o) { //事件处理
       String s = "";
       for(int i=0;i<10;i++){
       if(e.target==b[i]||e.target==bPoint){ //按钮事件来自于数字按钮和点按钮
            if(e.target!= bPoint) {
             public void doForeText(String s) {
                    foreText += s;
                    tfAnswer.setText(foreText); //显示输入 
                    }
                s = (String)o;
                doForeText(s); //处理输
            }
            if((e.target== bPoint)&&(!isFloat)){ //浮点数输入
               isFloat = true; //设置运算标志
               s = (String)o;
               if(foreText.equals("")){
                    foreText += "0.";  //增加小数点前面0
               }
  相关解决方案