java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java简单计算器

Java实现一个简单计算器

作者:蹦跶的小羊羔

这篇文章主要介绍了Java实现一个简单计算器,文章我围绕实现简单计算器的相关代码展现全文,具有一定的参考价值,需要的小伙伴可以参考一下,

先来看看界面效果:

源码如下:

package test1;
 
import java.awt.Frame;
import java.awt.TextField;
import java.awt.Button;
import java.awt.Panel;
import java.awt.GridLayout;
 
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class calculate {
    TextField tfResult;
    Button btNum[],btOper[],btPoint,btEqual,btBack,btSqrt,btPingfang,btLifang;
    int num1,num2;//操作数
    char oper;//操作符
    boolean isNum;//代表数字标志位
    public void init(){
        Frame f;
        
        tfResult=new TextField();
        
        btNum=new Button[10];//数组对象
        for(int i=0;i<=9;i++){
            btNum[i]=new Button(i+"");
        }
        btOper=new Button[4];
        btOper[0]=new Button("+");
        btOper[1]=new Button("-");
        btOper[2]=new Button("*");
        btOper[3]=new Button("/");
        
        btPoint=new Button(".");
        btEqual=new Button("=");
        btBack=new Button("Backspace");
        btSqrt=new Button("Sqrt");
        btPingfang=new Button("2");
        btLifang=new Button("3");
        f=new Frame("小羊羔的计算器!");
        
        f.setSize(300,300);
        
        //放置组件
        f.add(tfResult,"North");
        Panel panel=new Panel();
        f.add(panel,"Center");
        GridLayout gl=new GridLayout(5,4);
        panel.setLayout(gl);
        panel.add(btNum[1]);
        panel.add(btNum[2]);
        panel.add(btNum[3]);
        panel.add(btOper[0]);
        
        panel.add(btNum[4]);
        panel.add(btNum[5]);
        panel.add(btNum[6]);
        panel.add(btOper[1]);
        
        panel.add(btNum[7]);
        panel.add(btNum[8]);
        panel.add(btNum[9]);
        panel.add(btOper[2]);
        
        panel.add(btNum[0]);
        panel.add(btPoint);
        panel.add(btEqual);
        panel.add(btOper[3]);
        
        panel.add(btBack);
        panel.add(btSqrt);
        panel.add(btPingfang);
        panel.add(btLifang);
        f.setVisible(true);
        
        //注册监听
        f.addWindowListener(new MyWinLis());
        //数字按钮注册监听
        MyNumLis mnl=new MyNumLis();
        for(int i=0;i<=9;i++)
            btNum[i].addActionListener(mnl);
        
        //操作符按钮注册监听
        MyOperLis mol=new MyOperLis();
        for(int j=0;j<=3;j++)
            btOper[j].addActionListener(mol);
        //等号按钮注册监听
        MyEqualLis mel=new MyEqualLis();
        btEqual.addActionListener(mel);
        //删除按钮注册监听
        MyBackLis mbl=new MyBackLis();
        btBack.addActionListener(mbl);
        //开根号按钮注册监听
        MySqrtLis msl=new MySqrtLis();
        btSqrt.addActionListener(msl);
        //平方按钮注册监听
        MyPingfangLis mpl=new MyPingfangLis();
        btPingfang.addActionListener(mpl);
        //百分号注册监听
        MyLifangLis mll=new MyLifangLis();
        btLifang.addActionListener(mll);
    }
    //定义监听器类
    class MyNumLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String t=e.getActionCommand();
            String s=tfResult.getText();
            if(isNum==false)
                tfResult.setText(t);
            else 
                tfResult.setText(s+t);
            isNum=true;
        }
    }
    class MySqrtLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            double t=Double.parseDouble(tfResult.getText());
            tfResult.setText(Math.sqrt(t)+"");
            isNum=false;
        }
    }
    class MyPingfangLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            num1=Integer.parseInt(tfResult.getText());
            tfResult.setText(num1*num1+"");
        }
    }
    class MyLifangLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            num1=Integer.parseInt(tfResult.getText());
            tfResult.setText(num1*num1*num1+"");
        }
    }
    class MyOperLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            num1=Integer.parseInt(tfResult.getText());//转化为INT
            oper=e.getActionCommand().charAt(0);
            isNum=false;
        }
    }
    class MyEqualLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            int result=0;
            isNum=false;
            num2=Integer.parseInt(tfResult.getText());
            switch(oper){
                case '+':result=num1+num2;break;
                case '-':result=num1-num2;break;
                case '*':result=num1*num2;break;
                case '/':result=num1/num2;break;
            }
            tfResult.setText(result+"");
        }
    }
    class MyBackLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            tfResult.setText("");
            isNum=false;
        }
    }
    class MyWinLis extends WindowAdapter{
        public void windowClosing(WindowEvent e){
            e.getWindow().setVisible(false);
            e.getWindow().dispose();
            System.exit(0);
        }
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new calculate().init();
    }
 
}

11×5=?界面如下: 

到此这篇关于Java实现一个简单计算器的文章就介绍到这了,更多相关Java简单计算器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文