计算器 的C键(清楚上一次运算的功能,)不能用,无法算第二遍。我没学过JAVA,跑到这里麻烦大家一下。谢谢了import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class jisuanqi extends Applet implements ActionListener
{
   public Label text1;
   public TextField text;
   public Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
   public Panel panel1,panel2,panel3,panel4;
   double sum=0;
   String op="+";
    boolean start=true;
   
   public void init()
   {
      text=new TextField("");     
      b1=new Button("1");b2=new Button("2");b3=new Button("3");b4=new Button("4");
      b5=new Button("5");b6=new Button("6");b7=new Button("7");b8=new Button("8");
      b9=new Button("9");b10=new Button("0");b11=new Button(".");
      b12=new Button("+");b13=new Button("-");b14=new Button("*");
      b15=new Button("/");b16=new Button("=");b17=new Button("c");
      panel1=new Panel(new GridLayout(1,4,10,10));
      panel2=new Panel(new GridLayout(1,4,10,10));
      panel3=new Panel(new GridLayout(1,4,10,10));
      panel4=new Panel(new GridLayout(1,4,10,10));
      text1=new Label("JAVA  计算器程序 * 这是课本274页4.4题");
      text1.setAlignment(2);       setLayout(new GridLayout(7,1,10,10));
       panel1.add(b7);panel1.add(b8);panel1.add(b9);panel1.add(b15);
       panel2.add(b4);panel2.add(b5);panel2.add(b6);panel2.add(b14);
       panel3.add(b1);panel3.add(b2);panel3.add(b3);panel3.add(b13);
       panel4.add(b10);panel4.add(b11);panel4.add(b16);panel4.add(b12);
       add(text);add(b17);add(panel1);add(panel2);add(panel3);add(panel4); add(text1);
       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);
     }
      
     public void actionPerformed(ActionEvent e)
     {
       String s=e.getActionCommand();
       
       if('0'<=s.charAt(0)&&s.charAt(0)<='9'||s.charAt(0)=='.')
       {    if(start)  {text.setText(s); start=false;}
             else text.setText(text.getText()+s);
       }
        else
        {  
           if(s=="c")
             {
             }
           else
           {
           
           calculate(new Double(text.getText()).doubleValue());
             op=s;
            start=true;
           }
         }   
     
     }
      
     public void calculate(double n)
     {
      if(op=="+")  sum=sum+n;
      if(op=="-")    sum=sum-n;
      if(op=="*")   sum=sum*n;
      if(op=="/")    sum=sum/n;  
      if(op=="=")   sum=sum+0;
      text.setText(""+sum);
     } 
}

解决方案 »

  1.   

    if(s=="c")
                 {
    sum = 0;
                 }
      

  2.   

    if(s=="c") 
                { 
    sum = 0; 
    text.setText("");

                } 
      

  3.   

    //读取一行字符串,判定各个字符出现的次数。并按出现次数由大到小排序。
    import java.util.*;
    import java.io.*;
    import java.awt.*;
    import java.applet.*;
    import java.awt.event.*;
    public class jisuanqi extends Applet implements ActionListener
    {
       /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public Label text1;
       public TextField text;
       public Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
       public Panel panel1,panel2,panel3,panel4;
       double sum=0;
       String op="+";
        boolean start=true;
       
       public void init()
       {
          text=new TextField("");     
          b1=new Button("1");b2=new Button("2");b3=new Button("3");b4=new Button("4");
          b5=new Button("5");b6=new Button("6");b7=new Button("7");b8=new Button("8");
          b9=new Button("9");b10=new Button("0");b11=new Button(".");
          b12=new Button("+");b13=new Button("-");b14=new Button("*");
          b15=new Button("/");b16=new Button("=");b17=new Button("c");
          panel1=new Panel(new GridLayout(1,4,10,10));
          panel2=new Panel(new GridLayout(1,4,10,10));
          panel3=new Panel(new GridLayout(1,4,10,10));
          panel4=new Panel(new GridLayout(1,4,10,10));
          text1=new Label("JAVA  计算器程序 * 这是课本274页4.4题");
          text1.setAlignment(2);       setLayout(new GridLayout(7,1,10,10));
           panel1.add(b7);panel1.add(b8);panel1.add(b9);panel1.add(b15);
           panel2.add(b4);panel2.add(b5);panel2.add(b6);panel2.add(b14);
           panel3.add(b1);panel3.add(b2);panel3.add(b3);panel3.add(b13);
           panel4.add(b10);panel4.add(b11);panel4.add(b16);panel4.add(b12);
           add(text);add(b17);add(panel1);add(panel2);add(panel3);add(panel4); add(text1);
           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);
         }
          
         public void actionPerformed(ActionEvent e)
         {
           String s=e.getActionCommand();
           
           if('0'<=s.charAt(0)&&s.charAt(0)<='9'||s.charAt(0)=='.')
           {    if(start)  {text.setText(s); start=false;}
                 else text.setText(text.getText()+s);
           }
            else
            {  
               if(s=="c")
                 {
                text.setText("");
                 //System.out.print("yes");
                 }
               else
               {
               
               calculate(new Double(text.getText()).doubleValue());
                 op=s;
                start=true;
               }
             }   
         
         }
         public void calculate(double n)
         {
          if(op=="+")  sum=sum+n;
          if(op=="-")    sum=sum-n;
          if(op=="*")   sum=sum*n;
          if(op=="/")    sum=sum/n;  
          if(op=="=")   sum=sum+0;
         
          text.setText(""+sum);
         } 
    }
      

  4.   

    最简单的办法是这样:
    if(s.equals("c"))
    {
        sum = 0;
        text.setText(""); 
        op = "+";   //恢复操作符
     }
    另外强烈建议lz用equal方法来比较字符串