问题描述
用java语言编写简单的计算器,但是没有实现异常捕获(被除数为0时),还有最严重的就是不能清零,特别希望好心人能帮助我修改程序,还有就是如果发现其他问题请一并改正,好人啊好人//packageorg.swing;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classMyFrameextendsJFrame{publicMyFrame(){setTitle("简单计算器");setBounds(500,400,200,200);setResizable(true);MyPanelpanel=newMyPanel();add(panel);pack();}}classMyPanelextendsJPanel{privateJButtondisplay;privateJPanelpanel;privatedoubleresult;privateStringlastCommand;privatebooleanstart;publicMyPanel(){setLayout(newBorderLayout());result=0;lastCommand="=";start=true;display=newJButton("");display.setEnabled(false);add(display,BorderLayout.NORTH);ActionListenerinsert=newInsertAction();ActionListenercommand=newCommandAction();panel=newJPanel();panel.setLayout(newGridLayout(4,5));addButton("1",insert);addButton("2",insert);addButton("3",insert);addButton("%",command);addButton("+",command);addButton("4",insert);addButton("5",insert);addButton("6",insert);addButton("√",command);addButton("-",command);addButton("7",insert);addButton("8",insert);addButton("9",insert);addButton("C",command);addButton("*",command);addButton("0",insert);addButton(".",insert);addButton("=",command);addButton("1/X",command);addButton("/",command);add(panel,BorderLayout.CENTER);}privatevoidaddButton(Stringlabel,ActionListenerlistener){JButtonbutton=newJButton(label);button.addActionListener(listener);panel.add(button);}privateclassInsertActionimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Stringinput=event.getActionCommand();if(start){display.setText("");start=false;}display.setText(display.getText()+input);}}privateclassCommandActionimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Stringcommand=event.getActionCommand();if(start){if(command.equals("-")){display.setText(command);start=false;}elselastCommand=command;}else{calculate(Double.parseDouble(display.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/=(float)x;elseif(lastCommand.equals("="))result=x;elseif(lastCommand.equals("1/X"))result=1/x;elseif(lastCommand.equals("%"))result%=x;elseif(lastCommand.equals("√"))result=Math.sqrt(x);display.setText(""+result);if(lastCommand.equals("C"))display.setText(""+result);}}publicclassCalculator{publicstaticvoidmain(Stringargs[]){MyFrameframe=newMyFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}
解决方案
解决方案二:
呵呵。。。。说的好不具体。。。怎么样才是好的计算器呢
解决方案三:
好吧,只希望能够添加异常处理,还有能使清零准确运行