close
一把刀實用查詢📘

小計算器/適合初學者學習的簡單計算器代碼


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

import java.awt.*;

import java.awt.event.*;

import java.lang.*;

import javax.swing.*;



/**

  • Title: calculator

  • Description: 簡單計算器製作

  • Copyright: Copyright (c) 2005

  • Company:

  • * @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='+';

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

//定義組件

//

//

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

   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 '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
                   if(resultIndicate){
                     result=0;
                     data1=0;
                     prec='+';


                  }
                 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 '+': case '-':case '*':case '/':case '=':
                   if(s.charAt(0)!='='&&resultIndicate){
                   prec=s.charAt(0);
                   resultIndicate=false;
                 }
                   else{
                   switch(prec){
                           case '+':
                               result=result+data1;
                               break;
                         case '-':
                             result=result-data1;
                             break;
                          case '*':
                              result=result*data1;
                              break;
                           case '/':
                               result=result/data1;
                               break;


                     }
                   }
                   radixPointIndicate=false;
                   radixPointDepth=1;
                   displayNumber=new Double(result);
                   viewText.setText(displayNumber.toString());


                 if(s.charAt(0)!='='){
                     data1=0;
                     prec=s.charAt(0);
                   }  
                   else{
                       resultIndicate=true;
                   }
                   break;


           case '.':
                   radixPointIndicate=true;
                   break;


        }


  }


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

//主函數

//功能:實例化 顯示MyCalculator類的物件

//

//

//

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

 public static void main(String[] args)
 {
       calculator MyCalculator=new calculator("簡單計算器");


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

}

關于“小計算器/適合初學者學習的簡單計算器代碼”的用戶留言:

目前暫無留言

新增相關留言✍


返回首頁 | 📱 行動版 | 電腦版 💻
2009-2024 v1.22 a-j-e-3