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简单计算器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)