import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class test1 extends JFrame implements ActionListener
{ private JTextField text;
private double result=0;
private String op=" ";
  
    public test1()
    {
    setTitle("计算器");
   
    JPanel p5=new JPanel();
    text=new JTextField(20);
    p5.add(text);
   
   
    JPanel p1=new JPanel();
    p1.setLayout(new FlowLayout());
    JButton b1=new JButton("1");
    b1.setForeground(Color.blue);
    JButton b2=new JButton("2");
    b2.setForeground(Color.blue);
    JButton b3=new JButton("3");
    b3.setForeground(Color.blue);
    JButton b10=new JButton("+");
    b10.setForeground(Color.blue);
    JButton b11=new JButton("C");
    b11.setForeground(Color.blue);
    p1.add(b1);
    p1.add(b2);
    p1.add(b3);
    p1.add(b10);
    p1.add(b11);
   
   
  
    JPanel p2=new JPanel();
    p2.setLayout(new FlowLayout());
    JButton b4=new JButton("4");
    b4.setForeground(Color.blue);
    JButton b5=new JButton("5");
    b5.setForeground(Color.blue);
    JButton b6=new JButton("6");
    b6.setForeground(Color.blue);
    JButton b12=new JButton("-");
    b12.setForeground(Color.blue);
    JButton b13=new JButton("%");
    b13.setForeground(Color.blue);
    p2.add(b4);
    p2.add(b5);
    p2.add(b6);
    p2.add(b12);
    p2.add(b13);
   
   
    JPanel p3=new JPanel();
    p3.setLayout(new FlowLayout());
    JButton b7=new JButton("7");
    b7.setForeground(Color.blue);
    JButton b8=new JButton("8");
    b8.setForeground(Color.blue);
    JButton b9=new JButton("9");
    b9.setForeground(Color.blue);
    JButton b14=new JButton("*");
    b14.setForeground(Color.blue);
    JButton b15=new JButton("1/x");
    b15.setForeground(Color.blue);
    p3.add(b7);
    p3.add(b8);
    p3.add(b9);
    p3.add(b14);
    p3.add(b15);
   
   
    JPanel p4=new JPanel();
    p4.setLayout(new FlowLayout());
    JButton b0=new JButton("0");
    b0.setForeground(Color.blue);
    JButton b16=new JButton(".");
    b16.setForeground(Color.blue);
    JButton b17=new JButton("=");
    b17.setForeground(Color.blue);
    JButton b18=new JButton("/");
    b18.setForeground(Color.blue);
    JButton b19=new JButton("sqrt");
    b19.setForeground(Color.blue);
    p4.add(b0);
    p4.add(b16);
    p4.add(b17);
    p4.add(b18);
    p4.add(b19);
   
   
    JPanel panel=new JPanel();
    panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
    panel.add(p5);
    panel.add(p1);
    panel.add(p2);
    panel.add(p3);
    panel.add(p4);
    JButton[] button={b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19};
      
   
   
    add(panel);
   
   
   
    for(int i=0;i<button.length;i++)
    {
    button[i].addActionListener(this);
    }
}

  
   public void actionPerformed(ActionEvent e)
     { 
      int key=0;
        boolean newNumber=true;
        
      String actionCommand=e.getActionCommand();
      if(e.getSource() instanceof JButton)
      {
     
       if('0'<=actionCommand.charAt(0)&&actionCommand.charAt(0)<='9')
       {
         if(newNumber)
        {
        result=Double.parseDouble(text.getText()+actionCommand);
        text.setText(text.getText()+actionCommand);
        }
         else
        {
        if(key==0)
        {
        text.setText(actionCommand);
       
        }
        if(key==1)
        {
        text.setText(text.getText()+actionCommand);
        } 
        key=1;  
        }
       if(actionCommand=="=")        Calcutator();
       else 
      {
      op=actionCommand;
      Calcutator();
      text.setText(String.valueOf(result));
      newNumber=false;
       }
     
     }
     }
   }
    public void  Calcutator()
    {
     double number = new Double(text.getText()).doubleValue();
     switch(op.charAt(0))
     {
     case '+':
       result+=number;break;
     case '-':
       result-=number;break;
      case '*':
      result*=number;break;
      case '/':
      result/=number;break;
      case '%':
      result/=number;break;
      case 'C':
      text.setText(" ");break;
     }
     if(op=="sqrt")
     {
     result=Math.sqrt(result);
     }
     if(op=="1/x")
     result=1/result;
    
       
     }
     
 public static void main(String[]args)
   {
    test1 frame=new test1();
    frame.pack();
    frame.setVisible(true);
    frame.setResizable(false);
    }
   
}

解决方案 »

  1.   


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class test1 extends JFrame implements ActionListener
    { private JTextField text;
    private double result=0;
    private String op="=";
      
        public test1()
        {
        setTitle("计算器");
       
        JPanel p5=new JPanel();
        text=new JTextField(20);
        p5.add(text);
       
       
        JPanel p1=new JPanel();
        p1.setLayout(new FlowLayout());
        JButton b1=new JButton("1");
        b1.setForeground(Color.blue);
        JButton b2=new JButton("2");
        b2.setForeground(Color.blue);
        JButton b3=new JButton("3");
        b3.setForeground(Color.blue);
        JButton b10=new JButton("+");
        b10.setForeground(Color.blue);
        JButton b11=new JButton("C");
        b11.setForeground(Color.blue);
        p1.add(b1);
        p1.add(b2);
        p1.add(b3);
        p1.add(b10);
        p1.add(b11);
       
       
      
        JPanel p2=new JPanel();
        p2.setLayout(new FlowLayout());
        JButton b4=new JButton("4");
        b4.setForeground(Color.blue);
        JButton b5=new JButton("5");
        b5.setForeground(Color.blue);
        JButton b6=new JButton("6");
        b6.setForeground(Color.blue);
        JButton b12=new JButton("-");
        b12.setForeground(Color.blue);
        JButton b13=new JButton("%");
        b13.setForeground(Color.blue);
        p2.add(b4);
        p2.add(b5);
        p2.add(b6);
        p2.add(b12);
        p2.add(b13);
       
       
        JPanel p3=new JPanel();
        p3.setLayout(new FlowLayout());
        JButton b7=new JButton("7");
        b7.setForeground(Color.blue);
        JButton b8=new JButton("8");
        b8.setForeground(Color.blue);
        JButton b9=new JButton("9");
        b9.setForeground(Color.blue);
        JButton b14=new JButton("*");
        b14.setForeground(Color.blue);
        JButton b15=new JButton("1/x");
        b15.setForeground(Color.blue);
        p3.add(b7);
        p3.add(b8);
        p3.add(b9);
        p3.add(b14);
        p3.add(b15);
       
       
        JPanel p4=new JPanel();
        p4.setLayout(new FlowLayout());
        JButton b0=new JButton("0");
        b0.setForeground(Color.blue);
        JButton b16=new JButton(".");
        b16.setForeground(Color.blue);
        JButton b17=new JButton("=");
        b17.setForeground(Color.blue);
        JButton b18=new JButton("/");
        b18.setForeground(Color.blue);
        JButton b19=new JButton("sqrt");
        b19.setForeground(Color.blue);
        p4.add(b0);
        p4.add(b16);
        p4.add(b17);
        p4.add(b18);
        p4.add(b19);
       
       
        JPanel panel=new JPanel();
        panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
        panel.add(p5);
        panel.add(p1);
        panel.add(p2);
        panel.add(p3);
        panel.add(p4);
        JButton[] button={b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19};
          
       
       
        add(panel);
       
       
       
        for(int i=0;i<button.length;i++)
        {
        button[i].addActionListener(this);
        }
    }

      
       public void actionPerformed(ActionEvent e)
         { 
            boolean newNumber=true;
            
          String actionCommand=e.getActionCommand();
          if(e.getSource() instanceof JButton)
          {
         
           if('0'<=actionCommand.charAt(0)&&actionCommand.charAt(0)<='9'||actionCommand.charAt(0)=='.')
           {
             if(newNumber)
            
            {
             text.setText(actionCommand);
           
            }
            else
            {
               text.setText(text.getText()+actionCommand);
            } 
           
            
            newNumber=false;
           }
           else 
          {
          if(newNumber)
          {
             if(actionCommand.equals("-"))
             {
          text.setText(actionCommand);
          newNumber=false;
         
          }
          else
             {
          op=actionCommand;
          }
             }
          else
           {
             op=actionCommand;
             Calcutator(Double.parseDouble(text.getText()));
             newNumber=true;
           }
          }
         
        }
      }
        public void  Calcutator(double number)
        {
        
         if(op.equals("+"))         result+=number;
         else if(op.equals("-"))    result-=number;
         else if(op.equals("*"))    result*=number;
          else if(op.equals("/"))    result/=number;
         else if(op.equals("%"))    result/=number;
        
          else if(op.equals("sqrt"))    result=Math.sqrt(result);
     
          else if(op.equals("1/x"))     result=1/result;
          else if(op.equals("="))        result=number;
        
        
              text.setText(Double.toString(result));
       }
         
     public static void main(String[]args)
       {
        test1 frame=new test1();
        frame.pack();
        frame.setVisible(true);
        frame.setResizable(false);
        }
       
    }改了一些 但是还是错的……
      

  2.   

    lz这里有个计算器能用你可以参考一下:http://topic.csdn.net/u/20101215/19/00b8cb67-6815-410c-9779-71e3d37e93c8.html。
      

  3.   

    http://topic.csdn.net/u/20080709/12/c92cc549-3dc3-4a0b-b6e8-7c5fe7c4c9d5.html我实现的一个计算器,就是有点长
      

  4.   


    其实我知道哪里错了……
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class test1 extends JFrame implements ActionListener
    { private JTextField text;
    private double result=0;
    private String op="=";
    private boolean newNumber=true;
        public test1()
        {
        setTitle("计算器");
       
        JPanel p5=new JPanel();
        text=new JTextField(20);
        p5.add(text);
       
       
        JPanel p1=new JPanel();
        p1.setLayout(new FlowLayout());
        JButton b1=new JButton("1");
        b1.setForeground(Color.blue);
        JButton b2=new JButton("2");
        b2.setForeground(Color.blue);
        JButton b3=new JButton("3");
        b3.setForeground(Color.blue);
        JButton b10=new JButton("+");
        b10.setForeground(Color.blue);
        JButton b11=new JButton("C");
        b11.setForeground(Color.blue);
        p1.add(b1);
        p1.add(b2);
        p1.add(b3);
        p1.add(b10);
        p1.add(b11);
       
       
      
        JPanel p2=new JPanel();
        p2.setLayout(new FlowLayout());
        JButton b4=new JButton("4");
        b4.setForeground(Color.blue);
        JButton b5=new JButton("5");
        b5.setForeground(Color.blue);
        JButton b6=new JButton("6");
        b6.setForeground(Color.blue);
        JButton b12=new JButton("-");
        b12.setForeground(Color.blue);
        JButton b13=new JButton("%");
        b13.setForeground(Color.blue);
        p2.add(b4);
        p2.add(b5);
        p2.add(b6);
        p2.add(b12);
        p2.add(b13);
       
       
        JPanel p3=new JPanel();
        p3.setLayout(new FlowLayout());
        JButton b7=new JButton("7");
        b7.setForeground(Color.blue);
        JButton b8=new JButton("8");
        b8.setForeground(Color.blue);
        JButton b9=new JButton("9");
        b9.setForeground(Color.blue);
        JButton b14=new JButton("*");
        b14.setForeground(Color.blue);
        JButton b15=new JButton("1/x");
        b15.setForeground(Color.blue);
        p3.add(b7);
        p3.add(b8);
        p3.add(b9);
        p3.add(b14);
        p3.add(b15);
       
       
        JPanel p4=new JPanel();
        p4.setLayout(new FlowLayout());
        JButton b0=new JButton("0");
        b0.setForeground(Color.blue);
        JButton b16=new JButton(".");
        b16.setForeground(Color.blue);
        JButton b17=new JButton("=");
        b17.setForeground(Color.blue);
        JButton b18=new JButton("/");
        b18.setForeground(Color.blue);
        JButton b19=new JButton("sqrt");
        b19.setForeground(Color.blue);
        p4.add(b0);
        p4.add(b16);
        p4.add(b17);
        p4.add(b18);
        p4.add(b19);
       
       
        JPanel panel=new JPanel();
        panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
        panel.add(p5);
        panel.add(p1);
        panel.add(p2);
        panel.add(p3);
        panel.add(p4);
        JButton[] button={b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19};
          
       
       
        add(panel);
       
       
      
        for(int i=0;i<button.length;i++)
        {
        button[i].addActionListener(this);
        }
    }
     
      
       public void actionPerformed(ActionEvent e)
         { 
           
            
          String actionCommand=e.getActionCommand();        
         
         
           if('0'<=actionCommand.charAt(0)&&actionCommand.charAt(0)<='9'||actionCommand.equals("."))
    {
    if(newNumber)
    {
    text.setText(actionCommand);
    }
    else
    {
    text.setText(text.getText()+actionCommand);
    }
    newNumber=false;

    }
    else
    {
    if(newNumber)
    {
    if(actionCommand.equals("-"))
    {
    text.setText(actionCommand);
    newNumber=false;
    }
    else
    {
    op=actionCommand;
    }
    }
    else
    {
    Calcutator(Double.parseDouble(text.getText()));
    op=actionCommand;
    newNumber=true;
    }
    }
        }
       public void Calcutator(double n)
    {
    if(op.equals("+"))
    {
    result+=n;

    }
    else if(op.equals("-"))
    {
    result-=n;

    }
    else if(op.equals("*"))
    {
    result*=n;

    }
    else if(op.equals("/"))
    {
    result/=n;


    }

        else if(op.equals("%"))
        {
         result%=n;
        
        }
        else if(op.equals("1/x"))
        {
         result=1/n;
        
        }
        else if(op.equals("sqrt"))
        {
         result = Math.sqrt(n);
         }

    else if(op.equals("="))
    {
    result=n;

    }
    text.setText(Double.toString(result)); 
    }
         
     public static void main(String[]args)
       {
        test1 frame=new test1();
        frame.pack();
        frame.setVisible(true);
        frame.setResizable(false);
        }
       
    }
      

  5.   


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class test1 extends JFrame implements ActionListener
    { private JTextField text;
    private double result=0;
    private String op=" ";
    private  boolean newNumber=true;
      
        public test1()
        {
        setTitle("计算器");
       
        JPanel p5=new JPanel();
        text=new JTextField(20);
        p5.add(text);
       
       
        JPanel p1=new JPanel();
        p1.setLayout(new FlowLayout());
        JButton b1=new JButton("1");
        b1.setForeground(Color.blue);
        JButton b2=new JButton("2");
        b2.setForeground(Color.blue);
        JButton b3=new JButton("3");
        b3.setForeground(Color.blue);
        JButton b10=new JButton("+");
        b10.setForeground(Color.blue);
        JButton b11=new JButton("C");
        b11.setForeground(Color.blue);
        p1.add(b1);
        p1.add(b2);
        p1.add(b3);
        p1.add(b10);
        p1.add(b11);
       
       
      
        JPanel p2=new JPanel();
        p2.setLayout(new FlowLayout());
        JButton b4=new JButton("4");
        b4.setForeground(Color.blue);
        JButton b5=new JButton("5");
        b5.setForeground(Color.blue);
        JButton b6=new JButton("6");
        b6.setForeground(Color.blue);
        JButton b12=new JButton("-");
        b12.setForeground(Color.blue);
        JButton b13=new JButton("%");
        b13.setForeground(Color.blue);
        p2.add(b4);
        p2.add(b5);
        p2.add(b6);
        p2.add(b12);
        p2.add(b13);
       
       
        JPanel p3=new JPanel();
        p3.setLayout(new FlowLayout());
        JButton b7=new JButton("7");
        b7.setForeground(Color.blue);
        JButton b8=new JButton("8");
        b8.setForeground(Color.blue);
        JButton b9=new JButton("9");
        b9.setForeground(Color.blue);
        JButton b14=new JButton("*");
        b14.setForeground(Color.blue);
        JButton b15=new JButton("1/x");
        b15.setForeground(Color.blue);
        p3.add(b7);
        p3.add(b8);
        p3.add(b9);
        p3.add(b14);
        p3.add(b15);
       
       
        JPanel p4=new JPanel();
        p4.setLayout(new FlowLayout());
        JButton b0=new JButton("0");
        b0.setForeground(Color.blue);
        JButton b16=new JButton(".");
        b16.setForeground(Color.blue);
        JButton b17=new JButton("=");
        b17.setForeground(Color.blue);
        JButton b18=new JButton("/");
        b18.setForeground(Color.blue);
        JButton b19=new JButton("sqrt");
        b19.setForeground(Color.blue);
        p4.add(b0);
        p4.add(b16);
        p4.add(b17);
        p4.add(b18);
        p4.add(b19);
       
       
        JPanel panel=new JPanel();
        panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
        panel.add(p5);
        panel.add(p1);
        panel.add(p2);
        panel.add(p3);
        panel.add(p4);
        JButton[] button={b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19};
          
       
       
        add(panel);
       
       
       
        for(int i=0;i<button.length;i++)
        {
        button[i].addActionListener(this);
        }
    }

         int key=0;
      
       public void actionPerformed(ActionEvent e)
         { 
         
          
            
          String actionCommand=e.getActionCommand();
          if(e.getSource() instanceof JButton)
          {
         
           if('0'<=actionCommand.charAt(0)&&actionCommand.charAt(0)<='9'||actionCommand.equals("."))
           {
             if(newNumber)
            {
            result=Double.parseDouble(text.getText()+actionCommand);
           
            text.setText(text.getText()+actionCommand);
            }
             else
            {
            if(key==0)
            {
            text.setText(actionCommand);
           
            }
            if(key==1)
            {
            text.setText(text.getText()+actionCommand);
            } 
            key=1;  
            }
         }
           
           else 
          {
          newNumber=false;
          
         if(actionCommand.equals("="))        Calcutator();       op=actionCommand;
          if(actionCommand.equals("sqrt")||actionCommand.equals("1/x")||actionCommand.equals("C"))
          Calcutator();
         
           }
         
         }
         }
       
        public void  Calcutator()
        {
         double number = new Double(text.getText()).doubleValue();
        
         switch(op.charAt(0))
         {
          case '+':
                    result+=number;break;
               case '-':
                    result-=number;break;
               case '*':
                    result*=number;break;
               case '/':
                   result/=number;break;
               case '%':
                   result%=number;break;
        }
        
         if(op.equals("C"))
         {
           newNumber = true;
                  text.setText("");
                }
        
         if(op.equals("sqrt"))
        
         result=Math.sqrt(result);
        
         if(op.equals("1/x"))
         result=1/result;

         else 
         
            text.setText(new Double(result).toString());
         key=0;
        
        
           
         }
         
     public static void main(String[]args)
       {
        test1 frame=new test1();
        frame.pack();
        frame.setVisible(true);
        frame.setResizable(false);
        }
       
    }为什么还是实现不了清零啊????