Java实现简单计算器基本功能

package b;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class calulatorDemo {
   public static void main(String[]args){
     Calulator calu=new Calulator();  
   }
}
class Calulator extends JFrame{ 
        private JButton clear_Button=new JButton("Clear");//清除按钮
        private JButton Button[]=new JButton[16];//定义按钮数组对象
        private JTextField name =new JTextField(30);//文本组件
        private String button[]={"7","8","9","+","4","5","6","-","1","2","3","*","0",".","/","="};
     
    public Calulator(){
        super("欢迎来到编译的计算器!!!!!");
        for(int i=0;i             Button[i]=new JButton(button[i]);
            
        }
        
    
        
        JPanel pan=new JPanel();//定义面板
        JPanel pan2=new JPanel();
        
        pan.setLayout(new GridLayout(4,4,5,5));//布局管理器1,设置为格子面板
        for(int j=0;j             pan.add(Button[j]);//按钮添加到面板1中
        }
        for(int t=0;t             Button[t].addActionListener(new ActionListener(){//添加到按钮事件

                @Override
                public void actionPerformed(ActionEvent e) {
                    
                    // TODO Auto-generated method stub
                    name.setText(name.getText()+e.getActionCommand());//设置文本面板,添加按钮
                    
                    
                    
                }
                
            });
        }
        
        pan2.setLayout(new BorderLayout());//面板2布局模式为方向
         pan2.add(name, BorderLayout.WEST);//将文本组件加入面板西边
          pan2.add(clear_Button, BorderLayout.EAST);
          clear_Button.addActionListener(new ActionListener(){//定义清除按钮清空文本区域

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                name.setText("");
            }
              
          });//按钮满足的条件
        
          //等号按钮控制的事件
          Button[15].addActionListener(new ActionListener(){
             
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                //name.setText(name.getText()+e.getActionCommand());
                if(name.getText().contains("+")){//加法满足的算法
                    StringTokenizer string1 = new StringTokenizer(name.getText(),"+");    //分解字符串
                    double d1=0;
                    while(string1.hasMoreTokens()){//StringTokenizer的构造方法
                        d1=d1+Double.parseDouble(string1.nextToken());
                    }
                  
                    name.setText(name.getText()+e.getActionCommand()+d1);
                    

                }
                
                if(name.getText().contains("-")){
                    StringTokenizer string2=new StringTokenizer(name.getText(),"-");
                    double d2=0;
                    while(string2.hasMoreTokens()){
                        d2=(-Double.parseDouble(string2.nextToken()))-d2;
                        
                    }
                    name.setText(name.getText()+e.getActionCommand()+d2);
                }
            
            if(name.getText().contains("*")){
                 StringTokenizer string3=new StringTokenizer(name.getText(),"*");
                 double d3=1;
                 while(string3.hasMoreTokens()){
                     d3=d3*Double.parseDouble(string3.nextToken());
                 }
                 name.setText(name.getText()+e.getActionCommand()+d3);
            }
            if(name.getText().contains("/")){
                StringTokenizer string4=new StringTokenizer(name.getText(),"/");
                double d4=1,d5=1;
                while(string4.hasMoreTokens()){
                    d4=Double.parseDouble(string4.nextToken())/Double.parseDouble(string4.nextToken());
    
                }
                name.setText(name.getText()+e.getActionCommand()+d4);
            }
            
            }   
                
            });
                
          
          
        super.getContentPane().setLayout(new BorderLayout());
        super.getContentPane().add(pan2, BorderLayout.NORTH);
        super.getContentPane().add(pan, BorderLayout.CENTER);
        super.setSize(400, 400);//窗体大小
        super.setLocation(300,200);//窗体显示位置
        super.setVisible(true);
        
    }
    
    
}


 

你可能感兴趣的:(Java实现简单计算器基本功能)