欢迎来到天天文库
浏览记录
ID:25232042
大小:45.01 KB
页数:11页
时间:2018-11-19
《Java编写计算器几种常见做法.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Java编写计算器的几种常见的做法.txt9母爱是一滴甘露,亲吻干涸的泥土,它用细雨的温情,用钻石的坚毅,期待着闪着碎光的泥土的肥沃;母爱不是人生中的一个凝固点,而是一条流动的河,这条河造就了我们生命中美丽的情感之景。importjava.awt.*;importjava.awt.event.*;publicclassMyCalculator{privateFramef;privateTextFieldtf=newTextField(30);privatelongresult;privatebooleanappend=false;privat
2、echaroperator='=';privateButton[]btn=newButton[15];publicMyCalculator(){initComponent();}privatevoidinitComponent(){f=newFrame("MyCalculatorV1.0");f.setLayout(newBorderLayout());//TheframeusesBorderLayoutf.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowE
3、ventevt){System.exit(0);}});PanelcenterPanel=newPanel();centerPanel.setLayout(newGridLayout(5,3));//ThepanelusesGridLayoutNumberListenernl=newNumberListener();OperatorListenerol=newOperatorListener();btn[10]=newButton("+");btn[11]=newButton("-");btn[12]=newButton("*");btn[1
4、3]=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);Pane
5、lnorthPanel=newPanel();tf.setEditable(false);northPanel.add(tf);f.add(northPanel,BorderLayout.NORTH);}publicvoidgo(){f.pack();f.setVisible(true);}publicstaticvoidmain(String[]args){newMyCalculator().go();}/***采用成员内部类方式,实现监听器接口,方便访问主类内类内部成员。*此类负责数字按钮Action事件监听和处理*/classNumbe
6、rListenerimplementsActionListener{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);}}}/***成员内部类,负责操作符按钮的事件处理*/cla
7、ssOperatorListenerimplementsActionListener{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'+':resul
8、t+=num;break;case'-':result-=num;break;case'*':result*=num;break;case'/':{if(num==
此文档下载收益归作者所有