问题描述
代码如下importjava.awt.*;importjava.awt.event.*;importjava.awt.Frame.*;importjavax.swing.JPanel;@SuppressWarnings("unused")publicclassjisuanqiextendsWindowAdapterimplementsActionListener{doubledResult=0;doubledNowInput=0;doubledMemory;intn=0;intnOperation=1;intnBitsNum=0;booleanalreadyHaveDot=false;booleankeyAvailable=true;booleanalreadyClickedEqueal=false;booleanisTempNowInput=false;staticinti=0;Framef;Panelp1,p2,p3,p4,p5,p6;TextFieldtf1,tf2;Buttonb1,b2,b3,b4,b5,b6,b7,b8,b9,b0;ButtonbDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;ButtonbBackspace,bCE,bC;publicvoiddisplay(){f=newFrame("实训计算器");f.setSize(300,280);f.setLocation(200,200);f.setBackground(Color.RED);f.setResizable(false);f.setLayout(newBorderLayout(3,3));p1=newPanel(newGridLayout(1,3,5,5));p1.setBounds(4,5,235,23);p2=newPanel(newGridLayout(4,5,5,5));p2.setBounds(24,33,195,107);p3=newPanel(newGridLayout(5,1,5,5));p4=newPanel();p5=newPanel(newFlowLayout());p6=newPanel(newFlowLayout());p4.setLayout(null);p4.add(p1);p4.add(p2);tf1=newTextField(35);//存放显示区tf1.setText("0");tf1.setEditable(false);p5.add(tf1);f.add(p5,BorderLayout.NORTH);f.add(p4,BorderLayout.CENTER);f.add(p3,BorderLayout.WEST);b1=newButton("1");b2=newButton("2");b3=newButton("3");b4=newButton("4");b5=newButton("5");b6=newButton("6");b7=newButton("7");b8=newButton("8");b9=newButton("9");b0=newButton("0");b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);b0.addActionListener(this);bDiv=newButton("/");bMulti=newButton("*");bMinus=newButton("-");bPlus=newButton("+");bEqual=newButton("=");bDot=newButton(".");bNegative=newButton("+/-");bSqrt=newButton("sqrt");bPercent=newButton("%");bReciprocal=newButton("1/x");ButtonbMR;//隐藏它ButtonbMS;ButtonbMC;ButtonbM;bDiv.addActionListener(this);bSqrt.addActionListener(this);bMulti.addActionListener(this);bMinus.addActionListener(this);bPercent.addActionListener(this);bPlus.addActionListener(this);bReciprocal.addActionListener(this);bEqual.addActionListener(this);bDot.addActionListener(this);bNegative.addActionListener(this);p2.add(b7);p2.add(b8);p2.add(b9);p2.add(bDiv);p2.add(bSqrt);p2.add(b4);p2.add(b5);p2.add(b6);p2.add(bMulti);p2.add(bPercent);p2.add(b1);p2.add(b2);p2.add(b3);p2.add(bMinus);p2.add(bReciprocal);p2.add(b0);p2.add(bNegative);p2.add(bDot);p2.add(bPlus);p2.add(bEqual);bBackspace=newButton("Backspace");bCE=newButton("CE");bC=newButton("C");bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);p1.add(bBackspace);p1.add(bCE);p1.add(bC);tf2=newTextField(2);tf2.setEnabled(false);tf2.setBackground(Color.RED);bMC=newButton("MC");bMR=newButton("MR");bMS=newButton("MS");bM=newButton("M+");bMC.addActionListener(this);bMR.addActionListener(this);bMS.addActionListener(this);bM.addActionListener(this);p6.add(tf2);p3.add(p6);p3.add(bMC);p3.add(bMR);p3.add(bMS);p3.add(bM);f.setVisible(true);f.addWindowListener(this);Buttonbutton=newButton("u5207u6362");button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventarg0){}});button.setBounds(65,170,76,23);p4.add(button);}publicvoidactionPerformed(ActionEvente){//key0to9if(this.keyAvailable&&e.getActionCommand().length()==1&&e.getActionCommand().compareTo("0")>=0&&e.getActionCommand().compareTo("9")<=0){if(this.isTempNowInput){this.dNowInput=0;this.isTempNowInput=false;}this.nBitsNum++;if(this.alreadyHaveDot==false)this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand());else{doubletemp=Double.parseDouble(e.getActionCommand());for(inti=this.n;i<0;i++){temp*=0.1;}this.dNowInput+=temp;this.n--;}this.tf1.setText(Double.toString(this.dNowInput));}//keydotif(this.keyAvailable&&e.getActionCommand()=="."){if(this.alreadyHaveDot==false){this.nBitsNum++;this.alreadyHaveDot=true;this.n=-1;}}//key"+","-","*","/"if(this.keyAvailable&&e.getActionCommand()=="+"||e.getActionCommand()=="-"||e.getActionCommand()=="*"||e.getActionCommand()=="/"){if(this.alreadyClickedEqueal){this.dNowInput=this.dResult;this.isTempNowInput=true;}else{switch(this.nOperation){case1:this.dResult+=this.dNowInput;break;case2:this.dResult-=this.dNowInput;break;case3:this.dResult*=this.dNowInput;break;case4:{if(this.dNowInput==0){tf1.setText("除数不能为零");this.keyAvailable=false;}elsethis.dResult=this.dResult/this.dNowInput;}}if(this.keyAvailable)tf1.setText(Double.toString(this.dResult));this.dNowInput=0;}if(e.getActionCommand()=="+"){this.nOperation=1;}if(e.getActionCommand()=="-"){this.nOperation=2;}if(e.getActionCommand()=="*"){this.nOperation=3;}if(e.getActionCommand()=="/"){this.nOperation=4;}this.nBitsNum=0;this.alreadyClickedEqueal=false;}//key"+/-"if(this.keyAvailable&&e.getActionCommand()=="+/-"){this.dNowInput=0-this.dNowInput;tf1.setText(Double.toString(this.dNowInput));}//key"C"if(e.getActionCommand()=="C"){this.nBitsNum=0;this.dResult=0;this.dNowInput=0;this.alreadyHaveDot=false;this.n=0;this.nOperation=1;this.keyAvailable=true;this.alreadyClickedEqueal=false;tf1.setText("0.");}//key"CE"if(e.getActionCommand()=="CE"){this.nBitsNum=0;this.dNowInput=0;this.alreadyHaveDot=false;this.n=0;this.nOperation=1;this.keyAvailable=true;tf1.setText("0.");}//key"sqrt"if(this.keyAvailable&&e.getActionCommand()=="sqrt"){if(this.alreadyClickedEqueal){if(this.dResult>=0){this.dResult=Math.sqrt(this.dResult);tf1.setText(Double.toString(this.dResult));}else{tf1.setText("函数输入无效");this.keyAvailable=false;}}else{if(this.dNowInput>=0){this.dNowInput=Math.sqrt(this.dNowInput);tf1.setText(Double.toString(this.dNowInput));}else{tf1.setText("函数输入无效");this.keyAvailable=false;}}}//key"1/x"if(this.keyAvailable&&e.getActionCommand()=="1/x"){if(this.dNowInput==0){tf1.setText("除数不能为零");this.keyAvailable=false;}else{this.dNowInput=1/this.dNowInput;tf1.setText(Double.toString(this.dNowInput));}}//key"="if(this.keyAvailable&&e.getActionCommand()=="="){this.alreadyClickedEqueal=true;switch(this.nOperation){case1:this.dResult+=this.dNowInput;break;case2:this.dResult-=this.dNowInput;break;case3:this.dResult*=this.dNowInput;break;case4:{if(this.dNowInput==0){tf1.setText("除数不能为零");this.keyAvailable=false;}elsethis.dResult=this.dResult/this.dNowInput;}}if(this.keyAvailable)tf1.setText(Double.toString(this.dResult));}//key"MS"if(this.keyAvailable&&e.getActionCommand()=="MS"){this.dMemory=this.dNowInput;if(this.dMemory!=0)tf2.setText("M");}//key"MC"if(this.keyAvailable&&e.getActionCommand()=="MC"){this.dMemory=0;tf2.setText("");}//key"MR"if(this.keyAvailable&&e.getActionCommand()=="MR"){this.dNowInput=this.dMemory;tf1.setText(Double.toString(this.dNowInput));}//key"M+"if(this.keyAvailable&&e.getActionCommand()=="M+"){this.dMemory+=this.dNowInput;if(this.dMemory!=0)tf2.setText("M");elsetf2.setText("");}//key"%"if(this.keyAvailable&&e.getActionCommand()=="%"){this.dNowInput=(this.dResult*this.dNowInput)/100;tf1.setText(Double.toString(this.dNowInput));}//key"Backspace"if(this.keyAvailable&&e.getActionCommand()=="Backspace"){if(!this.alreadyClickedEqueal){if(this.dNowInput!=0){if(this.alreadyHaveDot){if(this.n==-1){this.alreadyHaveDot=false;this.n=0;}else{Stringstr,str1;str=tf1.getText();str1=str.substring(0,this.nBitsNum-1);this.nBitsNum--;this.n++;this.dNowInput=Double.parseDouble(str1);tf1.setText(Double.toString(this.dNowInput));}}else{inttemp;temp=(int)(this.dNowInput/10);this.dNowInput=(double)temp;tf1.setText(Double.toString(this.dNowInput));}}}}}publicstaticvoidmain(Stringargs[]){jisuanqical=newjisuanqi();cal.display();}publicvoidwindowClosing(WindowEvente){System.exit(0);}}
解决方案
解决方案二:
求大神给我改一下。我什么都不懂啊