版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java编写计算器的几种常见的做法。txt9母爱是一滴甘露,亲吻干枯的泥土,它用细雨的温情,用钻石的坚毅,期盼着闪着碎光的泥土的肥沃;母爱不是人生中的一个凝固点,而是一条流淌的河,这条河造就了我们生命中秀丽的情感之景。importjava。awt.*;importjava.awt。event。*;publicclassMyCalculator{privateFramef;privateTextFieldtf=newTextField(30);privatelongresult;privatebooleanappend=false;privatecharoperator='=';privateButton[]btn=newButton[15];publicMyCalculator(){initComponent();}privatevoidinitComponent(){f=newFrame("MyCalculatorV1.0");f。setLayout(newBorderLayout());//TheframeusesBorderLayoutf.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEventevt){System.exit(0);}});PanelcenterPanel=newPanel();centerPanel.setLayout(newGridLayout(5,3));//ThepanelusesGridLayoutNumberListenernl=newNumberListener();OperatorListenerol=newOperatorListener();btn[10]=newButton("+");btn[11]=newButton("-”);btn[12]=newButton("*”);btn[13]=newButton("/");btn[14]=newButton(”=”);for(inti=0;i〈=9;i++){btn[i]=newButton(String.valueOf(i));centerPanel。add(btn[i]);btn[i]。addActionListener(nl);if(i%2==1){centerPanel.add(btn[(i+19)/2]);btn[(i+19)/2]。addActionListener(ol);}}f。add(centerPanel,BorderLayout。CENTER);PanelnorthPanel=newPanel();tf。setEditable(false);northPanel.add(tf);f。add(northPanel,BorderLayout.NORTH);}publicvoidgo(){f.pack();f.setVisible(true);}publicstaticvoidmain(String[]args){newMyCalculator().go();}/***采纳成员内部类方式,实现监听器接口,便利访问主类内类内部成员.*此类负责数字按钮Action大事监听和处理*/classNumberListenerimplementsActionListener{publicvoidactionPerformed(ActionEvente){if(!append){tf.setText(”");append=true;}Strings=tf.getText();s+=e.getActionCommand();tf.setText(s);if(!btn[10]。isEnabled()){for(inti=10;i<=14;i++)btn[i].setEnabled(true);}}}/***成员内部类,负责操作符按钮的大事处理*/classOperatorListenerimplementsActionListener{publicvoidactionPerformed(ActionEvente){if(!append)return;for(inti=10;i<=14;i++)btn[i].setEnabled(false);Strings=tf。getText();longnum=Long.parseLong(s);//getthenumberoftextfieldappend=false;//setappendswitch(operator){case'+’:result+=num;break;case’-':result-=num;break;case’*’:result*=num;break;case'/':{if(num==0)result=0;elseresult/=num;break;}case'=':result=num;break;}tf.setText(String.valueOf(result));//setthevalueofresulttotextfieldStringop=e。getActionCommand();operator=op。charAt(0);//setoperator}}}方法2:—————————--——-——--————-——--—-———————-—————————packagewanwa;importjava.util.*;publicclasscalc{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System。out.println(”*****************简易计算器****************”);System.out。println("*\t\t\t\t\t*");System。out.println("*使用说明:1.加法2.减法3.乘法4.除法*”);System.out。println(”*\t\t\t\t\t*");System.out。println("*****************************************");for(inti=0;i<100;i++){System.out。print(”\n请选择运算规章:");intnum=input.nextInt();switch(num){case1:System.out。println("\n******你选择了加法******\n");System.out。print("请输入第1个加数:");intjiashu1=input.nextInt();System。out。print(”请输入第2个加数:”);intjiashu2=input.nextInt();System.out.println("运算结果为:”+jiashu1+”+”+jiashu1+”=”+(jiashu1+jiashu2));break;case2:System.out。println("\n******你选择了减法******\n");System。out。print(”请输入被减数:");intjianshu1=input。nextInt();System。out.print("请输入减数:");intjianshu2=input。nextInt();System.out.println("运算结果为:"+jianshu1+”-"+jianshu2+"="+(jianshu1-jianshu2));break;case3:System.out.println("\n******你选择了乘法******\n");System.out.print("请输入第1个因数:");intchengfa1=input。nextInt();System.out。print(”请输入第2个因数:");intchengfa2=input.nextInt();System.out.println("运算结果为:"+chengfa1+"*”+chengfa2+"="+(chengfa1*chengfa2));break;case4:System.out.println("\n******你选择了除法******\n”);System.out。print(”请输入被除数:");doublechufa1=input。nextInt();System.out。print("请输入除数:");doublechufa2=input.nextInt();System.out.println("运算结果为:"+chufa1+”/"+chufa2+"="+(chufa1/chufa2)+"余”+(chufa1%chufa2));break;default:System.out。println("\n你的选择有错,请重新选择!");break;}}}}第三种写法:—————--—-——-—-————-————————---——————---——----—packagewanwa;importjava.awt。*;importjava。awt。event.*;importjavax。swing。*;publicclassCalculatorextendsJFrame{privateContainercontainer;privateGridBagLayoutlayout;privateGridBagConstraintsconstraints;privateJTextFielddisplayField;//计算结果显示区privateStringlastCommand;//保存+,-,*,/,=命令privatedoubleresult;//保存计算结果privatebooleanstart;//推断是否为数字的开头publicCalculator(){super(”Calculator");container=getContentPane();layout=newGridBagLayout();container。setLayout(layout);constraints=newGridBagConstraints();start=true;result=0;lastCommand="=”;displayField=newJTextField(20);displayField。setHorizontalAlignment(JTextField.RIGHT);constraints。gridx=0;constraints.gridy=0;constraints.gridwidth=4;constraints.gridheight=1;constraints.fill=GridBagConstraints.BOTH;constraints.weightx=100;constraints。weighty=100;layout。setConstraints(displayField,constraints);container.add(displayField);ActionListenerinsert=newInsertAction();ActionListenercommand=newCommandAction();//addButton("Backspace",0,1,2,1,insert);//addButton("CE”,2,1,1,1,insert);//addButton(”C”,3,1,1,1,insert);addButton("7",0,2,1,1,insert);addButton(”8",1,2,1,1,insert);addButton(”9”,2,2,1,1,insert);addButton("/”,3,2,1,1,command);addButton("4",0,3,1,1,insert);addButton("5",1,3,1,1,insert);addButton("6”,2,3,1,1,insert);addButton(”*”,3,3,1,1,command);addButton(”1”,0,4,1,1,insert);addButton("2”,1,4,1,1,insert);addButton(”3",2,4,1,1,insert);addButton(”-",3,4,1,1,command);addButton(”0",0,5,1,1,insert);//addButton(”+/—”,1,5,1,1,insert);//只显示"-"号,”+”没有有用价值addButton(”。",2,5,1,1,insert);addButton("+”,3,5,1,1,command);addButton("=”,0,6,4,1,command);this.setResizable(false);setSize(180,200);setVisible(true);}privatevoidaddButton(Stringlabel,introw,intcolumn,intwith,intheight,ActionListenerlistener){JButtonbutton=newJButton(label);constraints.gridx=row;constraints.gridy=column;constraints。gridwidth=with;constraints。gridheight=height;constraints。fill=GridBagConstraints.BOTH;button。addActionListener(listener);layout。setConstraints(button,constraints);container。add(button);}privateclassInsertActionimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Stringinput=event.getActionCommand();if(start){displayField.setText("");start=false;if(input.equals("+/—"))displayField。setText(displayField.getText()+”-");}if(!input.equals("+/-")){if(input。equals(”Backspace")){Stringstr=displayField。getText();if(str.length()>0)displayField。setText(str.substring(0,str。length()-1));}elseif(input.equals(”CE”)||input.equals("C")){displayField.setText(”0");start=true;}elsedisplayField.setText(displayField.getText()+input);}}}privateclassCommandActionimplementsActionListener{publicvoidactionPerformed(ActionEventevt){Stringcommand=evt.getActionCommand();if(start){lastCommand=command;}else{calculate(Double。parseDouble(displayField.getText()));lastCommand=command;start=true;}}}publicvoidcalculate(doublex){if(lastCommand.equals("+"))result+=x;elseif(lastCommand.equals("—"))result-=x;elseif(lastCommand.equals("*"))result*=x;elseif(lastCommand.equals("/"))result/=x;elseif(lastCommand。equals("="))result=x;displayField.setText(””+result);}publicstaticvoidmain(String[]args){Calculatorcalculator=newCalculator();calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}第四种写法:——-———----——————-———--———-————————————-——-——-—packagewanwa;importjava。awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassCalculatorextendsJFrame{privateContainercontainer;privateGridBagLayoutlayout;privateGridBagConstraintsconstraints;privateJTextFielddisplayField;//计算结果显示区privateStringlastCommand;//保存+,-,*,/,=命令privatedoubleresult;//保存计算结果privatebooleanstart;//推断是否为数字的开头publicCalculator(){super("Calculator");container=getContentPane();layout=newGridBagLayout();container.setLayout(layout);constraints=newGridBagConstraints();start=true;result=0;lastCommand="=";displayField=newJTextField(20);displayField.setHorizontalAlignment(JTextField.RIGHT);constraints.gridx=0;constraints.gridy=0;constraints.gridwidth=4;constraints.gridheight=1;constraints.fill=GridBagConstraints.BOTH;constraints.weightx=100;constraints.weighty=100;layout。setConstraints(displayField,constraints);container.add(displayField);ActionListenerinsert=newInsertAction();ActionListenercommand=newCommandAction();//addButton("Backspace”,0,1,2,1,insert);//addButton("CE",2,1,1,1,insert);//addButton("C",3,1,1,1,insert);addButton("7",0,2,1,1,insert);addButton(”8",1,2,1,1,insert);addButton("9",2,2,1,1,insert);addButton("/",3,2,1,1,command);addButton("4",0,3,1,1,insert);addButton("5",1,3,1,1,insert);addButton(”6”,2,3,1,1,insert);addButton("*”,3,3,1,1,command);addButton("1",0,4,1,1,insert);addButton(”2",1,4,1,1,insert);addButton("3",2,4,1,1,insert);addButton("-”,3,4,1,1,command);addButton(”0”,0,5,1,1,insert);//addButton("+/—",1,5,1,1,insert);//只显示"-"号,"+"没有有用价值addButton(".",2,5,1,1,insert);addButton("+”,3,5,1,1,command);addButton(”=",0,6,4,1,command);this.setResizable(false);setSize(180,200);setVisible(true);}privatevoidaddButton(Stringlabel,introw,intcolumn,intwith,intheight,ActionListenerlistener){JButtonbutton=newJButton(label);constraints.gridx=row;constraints.gridy=column;constraints。gridwidth=with;constraints.gridheight=height;constraints.fill=GridBagConstraints.BOTH;button.addActionListener(listener);layout.setConstraints(button,constraints);container.add(button);}privateclassInsertActionimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Stringinput=event.getActionCommand();if(start){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度食品冷链物流服务合同SC(品质保障版)
- 2025年度光伏发电站建设临建劳务分包合同规范范本4篇
- 2025年蔬菜种植户与合作社农产品销售合同范本3篇
- 二零二四二手挖掘机交易规范合同范本3篇
- 二零二五标识标牌安装与后期维护保养合同3篇
- 二零二四年上海住房公积金贷款合同履行与贷款合同续约指南3篇
- 二零二五年度能源项目履约保函服务合同4篇
- 2025年度购物中心委托代建合同标准模板3篇
- 二零二五版变压器生产设备租赁合同范本4篇
- 2025年度城市绿化养护项目承包合同4篇
- 2024版塑料购销合同范本买卖
- 【高一上】【期末话收获 家校话未来】期末家长会
- JJF 2184-2025电子计价秤型式评价大纲(试行)
- GB/T 44890-2024行政许可工作规范
- 二年级下册加减混合竖式练习360题附答案
- 自带药物治疗告知书
- 房产中介门店6S管理规范
- 吞咽解剖和生理研究
- TSG11-2020 锅炉安全技术规程
- 汽轮机盘车课件
- 异地就医备案个人承诺书
评论
0/150
提交评论