以下是本人原创,如若转载和使用请注明转载地址。本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!少帅的博客
使用Ext实现简单计算器,网页版实现
1、页面部分calculator.jsp

 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>基于ExtJS的计算器</title>
    
    <link rel="stylesheet" type="text/css" href="<%=basePath%>js/resources/css/ext-all.css">
    <script type="text/javascript" src="<%=basePath%>js/ext-debug.js"></script>
    <script type="text/javascript" src="<%=basePath%>js/ext-all-debug.js"></script>
    <script type="text/javascript" src="<%=basePath%>js/jquery-1.9.0.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    //$("#block").hide();
        $("#btn").click(function(){
            $("#block").toggle();
        });
    });
    Ext.onReady( function () {
    
        Ext.create("Ext.Button", {
            renderTo: Ext.get("btn"),
            text: "计算器",
            allowDepress: true,     //是否允许按钮被按下的状态
            enableToggle: true,     //是否允许按钮在弹起和按下两种状态中切换
            id: "bt1"
        });
      
         new Ext.dd.DDProxy('block');//定义面板可以任意拖动
             //Ext.Msg.alert('提示', '执行方法 Ext.onReady()');//测试ext能否使用
             var  calPanel =  new  Ext.panel.Panel({ //定义面板
                title: '计算器' , //标题
                renderTo:'block', //将显示指向页面的body
                bodyPadding:5, //设置间隔
                width:270, //面板宽度
                closable:true,//定义面板的关闭按钮,默认是false
                layout:{
                    type: 'table' ,
                    columns:5 //设置表格布局默认列数为4列
                },
                frame: true ,
                tbar:[
                     '公式:' ,
                     new  Ext.form.field.Text({
                        id: 'expression' ,
                        readOnly: true ,
                        style: 'text-align:right'
                    }),
                     '=' ,
                     new  Ext.form.field.Text({
                        id: 'result' ,
                        width:60
                    })
                ],
                defaultType: 'button' ,
                defaults:{
                    minWidth:50,
                    handler:btnClick
                },
                items:[  //定义按钮
                    {text: '1' ,symbol: '1' },
                    {text: '2' ,symbol: '2' },
                    {text: '3' ,symbol: '3' },
                    {text: '(' ,symbol: '(' },
                    {text: ')' ,symbol: ')' },
                    {text: '4' ,symbol: '4' },
                    {text: '5' ,symbol: '5' },
                    {text: '6' ,symbol: '6' },
                    {text: '+' ,symbol: '+' },
                    {text: '-' ,symbol: '-' },
                    {text: '7' ,symbol: '7' },
                    {text: '8' ,symbol: '8' },
                    {text: '9' ,symbol: '9' },
                    {text: '*' ,symbol: '*' },
                    {text: '/' ,symbol: '/' },
                    {text: '0' ,symbol: '0' },
                    {text: '.' ,symbol: '.' },
                    {text: '=' ,symbol: '=' },
                    {text: 'C' ,symbol: 'clear' },
                    {text: 'back' ,symbol: 'back' }
                ]
            })
             var  expression = Ext.getCmp( 'expression' ); //取得id为expression的组件
             var  result = Ext.getCmp( 'result' ); //取得id为result的组件
             function  btnClick(btn){  //定义按钮事件
                 var  oldValue = expression.getValue();  //得到输入的值
                 if (btn.symbol ==  'back' ){  //如果选择后退键
                    oldValue = oldValue.subString(0,oldValue.length - 1);
                } else   if (btn.symbol ==  'clear' ){ //如果选择呢清除键
                    oldValue = '' ;
                    result.setValue( '' );
                } else   if (btn.symbol ==  '=' ){ //如果选择等于键
                    calculate();
                } 
                //else   if (btn.symbol ==  '.' ){ //如果选择小数点
                     //if (oldValue.indexOf( '.' ) != -1){
                       //  return ;
                    //}
                //} 
                else  {
                    oldValue += btn.symbol;
                }
                expression.setValue(oldValue);
            }
            
             function  calculate(){
                 var  str = expression.getValue();  //取得表达式的值
                 if (!Ext.isEmpty(str)){  //如果表达式的值不为空
                    Ext.Ajax.request({  //利用ajax异步调用
                        url: 'calAction.action' , //请求服务器的地址
                        method:'post',
                        params:{exp:str}, //请求参数
                        callback: function (options,success,response){ //回调函数
                             if (success){ //计算成功的话
                                result.setValue(response.responseText); //设置结果框的值
                            } else { //请求出错时,输出框显示erro r
                                result.setRawValue( 'error' );
                            }
                        }
                    })
                }
            }
        });  
    
    </script>
    
 
  </head>
  
  <body>
  <div id="btn" style="width: 20"></div>
  <div id="block" style="width: 270"></div>
  </body>

  </html>

页面形式如下:
 
 

Ext实现简单计算器的更多相关文章

  1. 1.C#WinForm基础制作简单计算器

    利用c#语言编写简单计算器: 核心知识点: MessageBox.Show(Convert.ToString(comboBox1.SelectedIndex));//下拉序号 MessageBox.S ...

  2. 菜鸟学Android编程——简单计算器《一》

    菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...

  3. PAT 06-1 简单计算器

    想看一般简单计算器实现的看客不好意思了,这不是你想要点东西,此处题设为“只能进行加减乘除”.“都是整数”.”优先级相同“和"从左到右".此题来自PAT(http://www.pat ...

  4. php大力力 [005节] php大力力简单计算器001

    2015-08-22 php大力力005. php大力力简单计算器001: 上网看视频,看了半天,敲击代码,如下: <html> <head> <title>简单计 ...

  5. PHP实现简单计算器

    <!--简单的计算器--> <!DOCTYPE html> <html> <head> <title>PHP实现简单计算器</titl ...

  6. c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;

    网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public st ...

  7. JavaWeb学习记录(二十)——Model1模式(javaBean+jsp)实现简单计算器案例

    ¨JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为: ¨<jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件. ¨< ...

  8. 一个用WPF做的简单计算器源代码

    一.界面设计XAML代码 <Window x:Class="fengjisuanqi.MainWindow" xmlns="http://schemas.micro ...

  9. hdu 1237 简单计算器

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单计算器 Description 读入一个只包含 +, -, *, / 的非负整数计算表达式, ...

随机推荐

  1. Sea Battle

    Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  2. ActiveX控件在IE中不响应Backspace消息

    1.操作输入法需要导入: #include <imm.h> #pragma comment(lib, "imm32") 2.定义变量: //键盘钩子句柄 HHOOK g ...

  3. linux的学习系列 10---vi

    Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功能. ...

  4. ReactiveX序列——RxSwift 浅析

      ReactiveX序列——RxSwift Swift是苹果公司新推出的一门现代化的编程语言,并且将其开源出来了,Swift具有很多的优点,这也使得这门语言推出的短时间引起了很大反应的原因,在最近的 ...

  5. UIWebView & javascript

    http://blog.163.com/m_note/blog/static/208197045201293015844274/ UIWebView是IOS SDK中渲染网面的控件,在显示网页的时候, ...

  6. GetClientRect

    这个函数好像就是对应于视口的,获取视口的宽高 #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPAR ...

  7. [原]左右的移动&lt;&lt;&gt;&gt;&lt;&gt;jQuery的实现

    $(function () {             $('#toAllLeft').click(function () {                 $('#se1 option').app ...

  8. 屏幕的尺寸(厘米)、屏幕分辨率(像素)、PPI它们之间是什么关系

    屏幕的尺寸(厘米).屏幕分辨率(像素).PPI它们之间是什么关系? 添加评论 分享 赞同2反对,不会显示你的姓名 知乎用户,数据ETL,UNITY3D 刘大侠.如果 赞同 以iphone4 为例,分辨 ...

  9. JavaBean-- DAO设计模式

    企业分层架构: 资源层:主要是数据库的操作层,里面可以进行各种数据存储,但是这些数据存储操作的时候肯定依靠SQL语句,如果在一个程序中出现过多的SQL语句,JSP页面非常复杂,不便于程序的可重用性 数 ...

  10. Android Screen Monitor使用

    Android Screen Monitor的使用 用来把android手机屏幕投射到电脑屏幕上,能够放大缩小屏幕,与手机屏幕保持同步. 这个项目是一个开源项目,源码地址:https://code.g ...