Java 朴素版计算器实现(代码冗长)
2016-04-11 11:27
489 查看
简单计算器
附源码
附源码
import java.awt.BorderLayout; import java.awt.Button; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; class MyActionClick implements ActionListener { MyFrameCal mf ; public MyActionClick(MyFrameCal mf) { this.mf = mf; } @Override public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); System.out.println("str:"+str); System.out.println("clickNum"+mf.clickNum); System.out.println("array:"+mf.data); switch(str) { case "0": case "1": case "2": case "3": case "4":; case "5": case "6": case "7": case "8": case "9": if (mf.data.size()==2) { return; } if(mf.data.size()==1&&mf.clickNum==0) { mf.data.set(0, Integer.parseInt(str)); return; } mf.data.add(Integer.parseInt(str)); int s = Integer.parseInt(str); mf.tf.setText(String.valueOf(s)); break; case "11": if(mf.data.size()==1&&mf.clickNum==0) { mf.tf.setText(""); mf.clickNum=1; return; } System.out.println("此时不能输入+"); break; case "12": if(mf.data.size()==1&&mf.clickNum==0) { mf.tf.setText(""); mf.clickNum=2; return; } System.out.println("此时不能输入-"); break; case "13": if(mf.data.size()==1&&mf.clickNum==0) { mf.tf.setText(""); mf.clickNum=3; return; } System.out.println("此时不能输入*"); break; case "14": if(mf.data.size()==1&&mf.clickNum==0) { mf.tf.setText(""); mf.clickNum=4; return; } System.out.println("此时不能输入/"); break; case "15": 4000 if(mf.data.size()!=2&&mf.clickNum==0) { return; } if(mf.data.get(1)==0&&mf.clickNum==4) { mf.tf.setText(""); System.out.println("除数不能为零,请重新输入"); mf.data.clear(); mf.clickNum=0; return; } System.out.println(mf.data); if(mf.data.size()==2&&mf.clickNum!=0) { if(mf.clickNum==1) { mf.tf.setText(String.valueOf(mf.data.get(0)+mf.data.get(1))); mf.data.clear(); mf.clickNum=0; return ; } if(mf.clickNum==2) { mf.tf.setText(String.valueOf(mf.data.get(0)-mf.data.get(1))); mf.data.clear(); mf.clickNum=0; return ; } if(mf.clickNum==3) { mf.tf.setText(String.valueOf(mf.data.get(0)*mf.data.get(1))); mf.data.clear(); mf.clickNum=0; return ; } if(mf.clickNum==4) { mf.tf.setText(String.valueOf(mf.data.get(0)/mf.data.get(1))); mf.data.clear(); mf.clickNum=0; return ; } } break; case "16": if(mf.tf.getText().equals("")||mf.data.size()==0) { return; } mf.data.remove(mf.data.size()-1); mf.tf.setText(""); break; default: break; } } } class MyFrameCal extends Frame { ArrayList<Integer> data = new ArrayList<Integer>(); int clickNum = 0; TextField tf = new TextField(10); Panel p = new Panel(); Button b1 = new Button("0"); Button b2 = new Button("1"); Button b3 = new Button("2"); Button b4 = new Button("3"); Button b5 = new Button("4"); Button b6 = new Button("5"); Button b7 = new Button("6"); Button b8 = new Button("7"); Button b9 = new Button("8"); Button b10 = new Button("9"); Button b11 = new Button("+"); Button b12 = new Button("-"); Button b13 = new Button("*"); Button b14 = new Button("/"); Button b15 = new Button("="); Button b16 = new Button("清零"); public void lauch() { this.add(tf,BorderLayout.NORTH); this.add(p,BorderLayout.CENTER); p.add(b1);p.add(b2);p.add(b3);p.add(b4);p.add(b5);p.add(b6);p.add(b7);p.add(b8); p.add(b9);p.add(b10);p.add(b11);p.add(b12);p.add(b13);p.add(b14);p.add(b15);p.add(b16); this.pack(); b1.addActionListener(new MyActionClick(this)); b2.addActionListener(new MyActionClick(this)); b3.addActionListener(new MyActionClick(this)); b4.addActionListener(new MyActionClick(this)); b5.addActionListener(new MyActionClick(this)); b6.addActionListener(new MyActionClick(this)); b7.addActionListener(new MyActionClick(this)); b8.addActionListener(new MyActionClick(this)); b9.addActionListener(new MyActionClick(this)); b10.addActionListener(new MyActionClick(this)); b11.addActionListener(new MyActionClick(this)); b11.setActionCommand("11"); b12.addActionListener(new MyActionClick(this)); b13.addActionListener(new MyActionClick(this)); b14.addActionListener(new MyActionClick(this)); b15.addActionListener(new MyActionClick(this)); b16.addActionListener(new MyActionClick(this)); b12.setActionCommand("12"); b13.setActionCommand("13"); b14.setActionCommand("14"); b15.setActionCommand("15"); b16.setActionCommand("16"); p.setLayout(new GridLayout(4,4)); this.setBounds(200,200,200,200); this.setVisible(true); this.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(-1); } } ); } } public class Test4 { public static void main(String[] args) { new MyFrameCal().lauch(); } }
相关文章推荐
- SpringDataJPA的几个使用记录
- java实现的加密解密
- 【Java并发编程六】线程池
- RxJava之Schedulers详解
- Java 简单加法器的实现
- java生成指定范围的随机数
- Java 类 内部类的使用
- Eclipse之Git修改文件标记
- spring ioc
- Spring常用注解@Component、@Controller、@ Service、@ Repository......
- 毕设笔记--MyEclipse10 SSH Hibernate反向生成实体类和hbm.xml配置文件
- Java 类 java的函数重载与修改对象的属性
- MyEclipse中配置SVN插件
- SpringAOP 基础具体解释
- Java jdk和jre有什么区别
- Java Struts2、Spring、Hibernate框架及jar包下载
- JAVA学习---集合系列---LinkedList
- ThreadLocal认知学习
- 【Java基础】--构造函数
- struts2中<s:select>标签的使用