求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽
2019-03-12 17:02:19
微信公开课小程序热门讨论「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」最新回复-这个你HI我吧,我告诉你方法,光在这里写,比较麻烦
importjava.awt.*;importjava.awt.event.*;classCalcAppDemoextendsFrame{privateTextFieldt_result;privatePanelp_main;//主面板privatePanelp_num;//数字面板privatePanelp_oper;//操作符面板privatePanelp_show;//显示面板privateButtonb_num[];//数字按钮privateButtonb_oper[];//操作符按钮publicCalcAppDemo(Stringtitle){ setTitle(title); t_result=newTextField(0.0,21); p_main=newPanel(); p_num=newPanel(); p_oper=newPanel(); p_show=newPanel(); p_main.setLayout(newBorderLayout()); p_num.setLayout(newGridLayout(4,3,1,1)); p_oper.setLayout(newGridLayout(4,2,1,1));b_num=newButton[12]; for(inti=0;i9;i++){ b_num[i]=newButton(newInteger(i+1).toString()); } b_num[9]=newButton(0); b_num[10]=newButton(cls); b_num[11]=newButton(.); for(inti=0;i12;i++){ p_num.add(b_num[i]); }b_oper=newButton[8]; b_oper[0]=newButton(+); b_oper[1]=newButton(-); b_oper[2]=newButton(*); b_oper[3]=newButton(/); b_oper[4]=newButton(pow); b_oper[5]=newButton(sqrt); b_oper[6]=newButton(+/-); b_oper[7]=newButton(=); for(inti=0;i8;i++){ p_oper.add(b_oper[i]); }t_result.setEditable(false); p_show.add(t_result,BorderLayout.NORTH); //文本框在显示面板的北边p_main.add(p_show,BorderLayout.NORTH); //显示面板在主面板上的北边 p_main.add(p_num,BorderLayout.WEST);p_main.add(p_oper,BorderLayout.EAST); //操作符面板在主面板上的东边 this.add(p_main,BorderLayout.CENTER); //主面板在框架(主窗口)的中间 setSize(400,400); setResizable(false); pack(); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){System.exit(0); } }); ButtonListenerbl=newButtonListener();//监听器对象 for(inti=0;i12;i++){ b_num[i].addActionListener(bl); //注册监听器 } for(inti=0;i8;i++){ b_oper[i].addActionListener(bl); }} classButtonListenerimplementsActionListener{//监听器类是内部类 privateStringlastOp;//存储上一次操作符 privateStringstrVal;//存储数字对应的字符串 privatedoubletotal;//总数 privatedoublenumber;//存储新输入的数 privatebooleanfirsttime;//判断是否第一次按下的是操作符按钮 privatebooleanoperatorPressed;//判断是否已经按过操作符按钮 ButtonListener(){ firsttime=true; strVal=; }//事件处理器 publicvoidactionPerformed(ActionEvente){ Strings=((Button)e.getSource()).getLabel().trim(); if(Character.isDigit(s.charAt(0))){//判断是操作数还是操作符 handleNumber(s); }else{calculate(s);//计算} }//判断是一元操作符还是二元操作符,并根据操作符类型做计算 voidcalculate(Stringop){ operatorPressed=true;if(firsttime&&!isUnary(op)){ total=getNumberOnDisplay(); firsttime=false; } if(isUnary(op)){handleUnaryOp(op);} elseif(lastOp!=null){ handleBinaryOp(lastOp); } if(!isUnary(op)){ //存储上一次按下的操作符lastOp=op; }}//判断是否是一元操作符 booleanisUnary(Strings){ returns.equals(=) ||s.equals(cls) ||s.equals(sqrt)||s.equals(+/-) ||s.equals(.); } //处理一元操作符 voidhandleUnaryOp(Stringop){ if(op.equals(+/-)){ //将显示框中的数字取反number=negate(getNumberOnDisplay()+); t_result.setText(); t_result.setText(number+);return;}elseif(op.equals(.)){handleDecPoint();return; }elseif(op.equals(sqrt)){number=Math.sqrt(getNumberOnDisplay());t_result.setText();t_result.setText(number+);return; }elseif(op.equals(=)){//在按下=前已经按下一个二元运算符if(lastOp!=null&&!isUnary(lastOp)){ handleBinaryOp(lastOp);}lastOp=null;firsttime=true;return; }else{ clear(); } }//处理二元运算符 voidhandleBinaryOp(Stringop){ if(op.equals(+)){ total+=number;}elseif(op.equals(-)){ total-=number; }elseif(op.equals(*)){ total*=number; }elseif(op.equals(/)){try{ //异常处理 total/=number;}catch(ArithmeticExceptionae){} }elseif(op.equals(pow))total=Math.pow(total,number);// t_result.setText(); lastOp=null;// strVal=; number=0;t_result.setText(total+); }//该方法用于处理数字按钮 voidhandleNumber(Strings){ if(!operatorPressed){ //连接按下的数字按钮的值strVal+=s; } else{ //当按下操作符按钮时,清除strVal并存储输入的第一个数值operatorPressed=false;strVal=s; } //将strVal转换为doublenumber=newDouble(strVal).doubleValue(); t_result.setText();t_result.setText(strVal); }//该方法用于按下.按钮 voidhandleDecPoint(){ operatorPressed=false; //如果该字符串中无.,放置一个.在字符串末尾 if(strVal.indexOf(.)0){strVal+=.;} t_result.setText(); t_result.setText(strVal); }//该方法用于将一个数求反 doublenegate(Strings){ operatorPressed=false; //如果是一个整数,去掉小数点后面的0 if(number==(int)number){s=s.substring(0,s.indexOf(.));} //如果无-增加在该数的前面if(s.indexOf(-)0){strVal=-+s; } else{//如果有-则去掉strVal=s.substring(1); } returnnewDouble(strVal).doubleValue();}//将显示框中的值转换为Double doublegetNumberOnDisplay(){ returnnewDouble(t_result.getText()).doubleValue(); }//清除屏幕并设置所有的标识 voidclear(){ firsttime=true; lastOp=null; strVal=; total=0; number=0; t_result.setText(0); }} publicstaticvoidmain(Stringargs[]){ CalcAppDemoc=newCalcAppDemo(简单的计算器程序); c.setVisible(true);}}//这是我以前写的,参考一下吧 更多有关「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」的疑问请扫码关注微信公开课+小程序!
importjava.awt.*;importjava.awt.event.*;classCalcAppDemoextendsFrame{privateTextFieldt_result;privatePanelp_main;//主面板privatePanelp_num;//数字面板privatePanelp_oper;//操作符面板privatePanelp_show;//显示面板privateButtonb_num[];//数字按钮privateButtonb_oper[];//操作符按钮publicCalcAppDemo(Stringtitle){ setTitle(title); t_result=newTextField(0.0,21); p_main=newPanel(); p_num=newPanel(); p_oper=newPanel(); p_show=newPanel(); p_main.setLayout(newBorderLayout()); p_num.setLayout(newGridLayout(4,3,1,1)); p_oper.setLayout(newGridLayout(4,2,1,1));b_num=newButton[12]; for(inti=0;i9;i++){ b_num[i]=newButton(newInteger(i+1).toString()); } b_num[9]=newButton(0); b_num[10]=newButton(cls); b_num[11]=newButton(.); for(inti=0;i12;i++){ p_num.add(b_num[i]); }b_oper=newButton[8]; b_oper[0]=newButton(+); b_oper[1]=newButton(-); b_oper[2]=newButton(*); b_oper[3]=newButton(/); b_oper[4]=newButton(pow); b_oper[5]=newButton(sqrt); b_oper[6]=newButton(+/-); b_oper[7]=newButton(=); for(inti=0;i8;i++){ p_oper.add(b_oper[i]); }t_result.setEditable(false); p_show.add(t_result,BorderLayout.NORTH); //文本框在显示面板的北边p_main.add(p_show,BorderLayout.NORTH); //显示面板在主面板上的北边 p_main.add(p_num,BorderLayout.WEST);p_main.add(p_oper,BorderLayout.EAST); //操作符面板在主面板上的东边 this.add(p_main,BorderLayout.CENTER); //主面板在框架(主窗口)的中间 setSize(400,400); setResizable(false); pack(); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){System.exit(0); } }); ButtonListenerbl=newButtonListener();//监听器对象 for(inti=0;i12;i++){ b_num[i].addActionListener(bl); //注册监听器 } for(inti=0;i8;i++){ b_oper[i].addActionListener(bl); }} classButtonListenerimplementsActionListener{//监听器类是内部类 privateStringlastOp;//存储上一次操作符 privateStringstrVal;//存储数字对应的字符串 privatedoubletotal;//总数 privatedoublenumber;//存储新输入的数 privatebooleanfirsttime;//判断是否第一次按下的是操作符按钮 privatebooleanoperatorPressed;//判断是否已经按过操作符按钮 ButtonListener(){ firsttime=true; strVal=; }//事件处理器 publicvoidactionPerformed(ActionEvente){ Strings=((Button)e.getSource()).getLabel().trim(); if(Character.isDigit(s.charAt(0))){//判断是操作数还是操作符 handleNumber(s); }else{calculate(s);//计算} }//判断是一元操作符还是二元操作符,并根据操作符类型做计算 voidcalculate(Stringop){ operatorPressed=true;if(firsttime&&!isUnary(op)){ total=getNumberOnDisplay(); firsttime=false; } if(isUnary(op)){handleUnaryOp(op);} elseif(lastOp!=null){ handleBinaryOp(lastOp); } if(!isUnary(op)){ //存储上一次按下的操作符lastOp=op; }}//判断是否是一元操作符 booleanisUnary(Strings){ returns.equals(=) ||s.equals(cls) ||s.equals(sqrt)||s.equals(+/-) ||s.equals(.); } //处理一元操作符 voidhandleUnaryOp(Stringop){ if(op.equals(+/-)){ //将显示框中的数字取反number=negate(getNumberOnDisplay()+); t_result.setText(); t_result.setText(number+);return;}elseif(op.equals(.)){handleDecPoint();return; }elseif(op.equals(sqrt)){number=Math.sqrt(getNumberOnDisplay());t_result.setText();t_result.setText(number+);return; }elseif(op.equals(=)){//在按下=前已经按下一个二元运算符if(lastOp!=null&&!isUnary(lastOp)){ handleBinaryOp(lastOp);}lastOp=null;firsttime=true;return; }else{ clear(); } }//处理二元运算符 voidhandleBinaryOp(Stringop){ if(op.equals(+)){ total+=number;}elseif(op.equals(-)){ total-=number; }elseif(op.equals(*)){ total*=number; }elseif(op.equals(/)){try{ //异常处理 total/=number;}catch(ArithmeticExceptionae){} }elseif(op.equals(pow))total=Math.pow(total,number);// t_result.setText(); lastOp=null;// strVal=; number=0;t_result.setText(total+); }//该方法用于处理数字按钮 voidhandleNumber(Strings){ if(!operatorPressed){ //连接按下的数字按钮的值strVal+=s; } else{ //当按下操作符按钮时,清除strVal并存储输入的第一个数值operatorPressed=false;strVal=s; } //将strVal转换为doublenumber=newDouble(strVal).doubleValue(); t_result.setText();t_result.setText(strVal); }//该方法用于按下.按钮 voidhandleDecPoint(){ operatorPressed=false; //如果该字符串中无.,放置一个.在字符串末尾 if(strVal.indexOf(.)0){strVal+=.;} t_result.setText(); t_result.setText(strVal); }//该方法用于将一个数求反 doublenegate(Strings){ operatorPressed=false; //如果是一个整数,去掉小数点后面的0 if(number==(int)number){s=s.substring(0,s.indexOf(.));} //如果无-增加在该数的前面if(s.indexOf(-)0){strVal=-+s; } else{//如果有-则去掉strVal=s.substring(1); } returnnewDouble(strVal).doubleValue();}//将显示框中的值转换为Double doublegetNumberOnDisplay(){ returnnewDouble(t_result.getText()).doubleValue(); }//清除屏幕并设置所有的标识 voidclear(){ firsttime=true; lastOp=null; strVal=; total=0; number=0; t_result.setText(0); }} publicstaticvoidmain(Stringargs[]){ CalcAppDemoc=newCalcAppDemo(简单的计算器程序); c.setVisible(true);}}//这是我以前写的,参考一下吧 更多有关「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」的疑问请扫码关注微信公开课+小程序!
标签:微信公开课,小程序
「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」热议话题订阅
方法1:微信扫描微信公开课小程序码即可订阅热议话题「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」
微信公开课小程序热议话题「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议话题「求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-12 17:02:19
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>