一、项目简介
本项目为Java Swing计算器项目,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。
项目都经过严格调试,idea确保可以运行!
二、技术实现
后端:java,面向对象,swing编程。
运行环境及开发工具:jdk,idea
三、界面截图
本程序的难点 :
1.按钮的循环添加
由于本程序的界面基本都由按钮组成,一个一个的添加太麻烦,所以采用循环的方式添加。
public void getButton(){ String str="123+456-789*0.=/"; JButton b = null; for(int i=0; i<str.length(); i++){ b = new JButton(str.substring(i, i+1));//i:startIndex i+1:endIndex b.addActionListener(this); jpl.add(b); } } 2.事件的处理
什么时候输入数字,什么时候进行运算,逻辑要处理好
String inputStr = arg0.getActionCommand(); if(inputStr.equals("=")){ Double a = Double.valueOf(firstInput); Double b = Double.valueOf(jtf.getText());//当输入等号时,文本框中还输入了另外一组数字 double result = 0; if(operator.equals("+")){ result=a+b; } if(operator.equals("-")){ result=a-b; } if(operator.equals("*")){ result=a*b; } if(operator.equals("/")){ if(b != 0){ result=a/b; } } jtf.setText(result+""); } else if(".0123456789".indexOf(inputStr) != -1){ jtf.setText(inputStr+jtf.getText()); jtf.setHorizontalAlignment(JTextField.RIGHT); }//如果输入了运算符,那么就保存之前输入的数字,并将文本框清空 else if(inputStr.matches("[+*-/]{1}")){ operator = inputStr;//当前输入的运算符 firstInput = jtf.getText();//输入运算符之前输入的数字 jtf.setText("");//清空文本框 }