Java实现一个简单计算器
更新时间:2022年01月25日 14:50:10 作者:蹦跶的小羊羔
这篇文章主要介绍了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简单计算器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Maven项目执行生命周期相关操作时出现错误:does not match a
当pom文件中的gav标签格式错误,如出现中文或空格,会导致与有效的id模式不匹配错误,gav标签应仅包含数字、字母和下划线,解决方法是修改标签中的中文为英文,删除多余空格,并刷新pom文件,例如,将中文"测试"改为英文"test"2024-09-09Springboot RestTemplate设置超时时间的简单方法
学习springboot ,RestTemplate的使用场景非常非常多,比如springcloud中的服务消费,下面这篇文章主要给大家介绍了关于Springboot RestTemplate设置超时时间的简单方法,需要的朋友可以参考下2022-01-01浅谈@mapper引入不到引入的是@MapperScan的问题
这篇文章主要介绍了浅谈@mapper引入不到引入的是@MapperScan的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-10-10
最新评论