首页 | 财务类 | 小计算器 | 相关知识 | 适合初学者学习的简单计算器代码
适合初学者学习的简单计算器代码



//////////////////////////////////////////////////////////////////////////////////////////////////////
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;


/**
* <p>Title: calculator </p>
* <p>Description: 简单计算器制作</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* * @version 1.0
*/


public class calculator extends JFrame implements ActionListener
{
//////////////////////////////////////////////
//设定缺省初始值
//
//
//
//////////////////////////////////////////////
    private double result=0,data1=0,radixPointDepth=1;
    private boolean radixPointIndicate=false,resultIndicate=false;
    private char prec=&#39;+&#39;;
//////////////////////////////////////////////
//定义组件
//
//
//////////////////////////////////////////////
    JButton addButton             =new JButton("+");
    JButton deductButton          =new JButton("-");
    JButton multiplicationButton  =new JButton("*");
    JButton divisionButton        =new JButton("/");
    JButton pointButton           =new JButton(".");
    JButton equalButton           =new JButton("=");
    JTextField viewText           =new JTextField("0",30);
    //定义数字?
    JButton[] numButton           =new JButton[10];
    static String code;
    void setnumButton()
    {
      for(int i=0;i<10;i++)
      {
//      numButton[i]              =new JButton(new Integer(i).toString());
            numButton[i]                          =new JButton(String.valueOf(i));
      }
    }

//////////////////////////////////////////////
//定义构造方法
//
//
//////////////////////////////////////////////
  public calculator(String title)
  {
    super(title);
    setSize(210,170);
    this.setResizable(false);
    
    setCalculator();
    setActionListener();
  
  }
/*定义setcalculator方法用于添加组件*/
  void setCalculator()
  {


        setnumButton();
    Container c=getContentPane();    
    JPanel mainPanel=new JPanel();
    mainPanel.setLayout(new GridLayout(4,4,10,10));
    mainPanel.setBackground(Color.yellow);
    mainPanel.add(numButton[7]);
    mainPanel.add(numButton[8]);
    mainPanel.add(numButton[9]);
    mainPanel.add(divisionButton);
    mainPanel.add(numButton[4]);
    mainPanel.add(numButton[5]);
    mainPanel.add(numButton[6]);
    mainPanel.add(multiplicationButton);
    mainPanel.add(numButton[1]);
    mainPanel.add(numButton[2]);
    mainPanel.add(numButton[3]);
    mainPanel.add(deductButton);    
    mainPanel.add(numButton[0]);
    mainPanel.add(pointButton);
    mainPanel.add(equalButton);
    mainPanel.add(addButton);  

        viewText.setHorizontalAlignment(JTextField.RIGHT);
        viewText.setEditable(false);
        viewText.setBackground(Color.cyan);
    c.add(viewText,BorderLayout.NORTH);        
    c.add(mainPanel,BorderLayout.CENTER);        
  }

//////////////////////////////////////////////
//定义setActionListener方法
//功能:事件源绑定
//覆盖actionPerformed方法
//
//////////////////////////////////////////////
  void setActionListener()
  {
          for(int i=0;i<10;i++)
          {
                  numButton[i].addActionListener(this);        
          }
          
                addButton.addActionListener(this);
                deductButton.addActionListener(this);
                multiplicationButton.addActionListener(this);
                divisionButton.addActionListener(this);
                pointButton.addActionListener(this);
                equalButton.addActionListener(this);
        

  }
//覆盖actionPerformed方法
  public void actionPerformed(ActionEvent e){


        String s;        
        s=e.getActionCommand();


         switch(s.charAt(0)){
              case &#39;0&#39;: case &#39;1&#39;: case &#39;2&#39;: case &#39;3&#39;: case &#39;4&#39;: case &#39;5&#39;: case &#39;6&#39;: case &#39;7&#39;: case &#39;8&#39;: case &#39;9&#39;:
                    if(resultIndicate){
                      result=0;
                      data1=0;
                      prec=&#39;+&#39;;

                   }
                  Integer Int1=new Integer(s);
                    if(radixPointIndicate){
                     radixPointDepth=radixPointDepth/10;
                     data1=data1+(Int1.intValue())*radixPointDepth;
                  }
                  else{
                      data1=data1*10+(Int1.intValue());
                    }
                  Double displayNumber=new Double(data1);
                    viewText.setText(displayNumber.toString());
                  resultIndicate=false;
                    break;
            
            case &#39;+&#39;: case &#39;-&#39;:case &#39;*&#39;:case &#39;/&#39;:case &#39;=&#39;:
                    if(s.charAt(0)!=&#39;=&#39;&&resultIndicate){
                    prec=s.charAt(0);
                    resultIndicate=false;
                  }
                    else{
                    switch(prec){
                            case &#39;+&#39;:
                                result=result+data1;
                                break;
                          case &#39;-&#39;:
                              result=result-data1;
                              break;
                           case &#39;*&#39;:
                               result=result*data1;
                               break;
                            case &#39;/&#39;:
                                result=result/data1;
                                break;
                          
                      }
                    }
                    radixPointIndicate=false;
                    radixPointDepth=1;
                    displayNumber=new Double(result);
                    viewText.setText(displayNumber.toString());
                  
                  if(s.charAt(0)!=&#39;=&#39;){
                      data1=0;
                      prec=s.charAt(0);
                    }  
                    else{
                        resultIndicate=true;
                    }
                    break;

            case &#39;.&#39;:
                    radixPointIndicate=true;
                    break;

         }
    
   }

//////////////////////////////////////////////
//主函数
//功能:实例化 显示MyCalculator类的对象
//
//
//
//////////////////////////////////////////////
  public static void main(String[] args)
  {
        calculator MyCalculator=new calculator("简单计算器");

        MyCalculator.show();
        MyCalculator.setLocation(400,300);
  }
}

///////////////////////////////////////////////////////////////////////////////////////////////

- 相关栏目: 世界货币  体彩信息  存款利息  福彩信息  纳税计算  股票信息  证券国债  
- 相关搜索: 计算器  小计算器  智能计算机器  利息计算器  贷款计算器  税务计算器