Java+NetBeans实现简易的计算器
2015-10-06 14:25
751 查看
此计算器能够实现简单的加减乘除运算。
插入图片后的界面:
创建一个方法来获取数字的值:
加减乘除和小数点运算:
注:这里的小数点实现不太合理,但是只要人为输入不错误就能保证小数点的正确实现
等于功能:
退格功能:
清零功能:
点击按键变色功能:
插入图片后的界面:
创建一个方法来获取数字的值:
private void setNum(String str){ //实例化对象,获取文本框中的内容 String strText = new String(jTextField1.getText()); //如果jTextField1的内容等于“0”,则文本框等于输入的内容str if(strText.equals("0")){ jTextField1.setText(str); }else{ //否则在原来的内容上追加str StringBuffer strBuf = new StringBuffer(strText); strBuf.append(str); jTextField1.setText(strBuf.toString()); } }
加减乘除和小数点运算:
注:这里的小数点实现不太合理,但是只要人为输入不错误就能保证小数点的正确实现
private void setPoint(String str){ String strText = jTextField1.getText(); //判断strText中字符串的最右边以为是否为运算符 int lastRight = strText.length()-1; //获得倒数第二位的字符 char ch = strText.charAt(lastRight); if(ch == '+' || ch == '_' || ch == '*' || ch == '/' || ch == '.'){ //替换strText最右边的运算符为当前按键str,如“12345” “1234” String strResult = strText.substring(0, lastRight)+str; //strResult赋值 jTextField1.setText(strResult); }else{ //strText追加当前str jTextField1.setText(strText+str); } }
等于功能:
private void equalMouseReleased(java.awt.event.MouseEvent evt) { // TODO add your handling code here: //引用脚本,調用js中的eavl()方法 ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine se = manager.getEngineByName("js"); try { //把字符串转换为表达式(Double类型)“6+3*3”>- 6+3*3 Double num =(Double)se.eval("("+jTextField1.getText()+")*1.0");
//从文本框中输出结果 jTextField1.setText(num.toString()); } catch (ScriptException ex) { Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex); jTextField1.setText("输入错误,请重新输入"); } }
退格功能:
private void backspaceMouseReleased(java.awt.event.MouseEvent evt) { // TODO add your handling code here: String strText = new String(jTextField1.getText()); if(strText.equals("0")){ // jTextField1.setText(str); }else{ StringBuffer strBuf = new StringBuffer(strText); //按下标删除每一个字符,直到删除完 strBuf.deleteCharAt(strBuf.length()-1); jTextField1.setText(strBuf.toString()); //当删除到只剩一位数时自动变“0” if(strBuf.length()<1){ jTextField1.setText("0"); } } }
清零功能:
private void clearMouseReleased(java.awt.event.MouseEvent evt) { // TODO add your handling code here: String strText = new String(jTextField1.getText()); if(strText.equals("0")){ jTextField1.setText("0"); }else{ jTextField1.setText("0"); } }
点击按键变色功能:
//鼠标移动到“9”时按钮变为黄色 private void jButton9MouseMoved(java.awt.event.MouseEvent evt) { // TODO add your handling code here: jButton9.setBackground(Color.YELLOW); } //鼠标从数字“9”移开是按钮变回灰色 private void jButton9MouseExited(java.awt.event.MouseEvent evt) { // TODO add your handling code here: jButton9.setBackground(Color.LIGHT_GRAY); }
相关文章推荐
- State 模式
- java中br.readLine与 br.read的用法区别
- Java8新特性 - Lambda表达式 - 基本知识
- spring InitializingBean接口分析
- Command模式
- 我为什么要写《一起学java》这个系列
- java中InputStream中read()与read(byte[] b) 用法介绍
- java 学生信息管理系统
- Spring Boot JSP
- 笔试题引发的思考--引用传递
- HBase Java API Demo
- Java编程思想学习笔记——类型信息
- 使用easyUI + SpringMVC 技术web项目开发 中文乱码
- java多态心得
- java.util.concurrent.atomic包分类
- java反射
- Spring父子容器的关系分析--用实例说话
- java实现计算算术表达式的值(后缀表达式方式)
- Spring mvc4返回的json日期为Long的解决方案
- 小议hashmap