This discussion is archived
2 Replies Latest reply: Oct 16, 2012 12:35 PM by rukbat RSS

Calculator Help

968683 Newbie
Currently Being Moderated
Hi, I'm really desperate this is due tonight could somebody assist me in fixing this program
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; 
public class Calculator extends JFrame  {

     JButton add ,subtract, multiply, divide; 
     JTextField num1 , num2 ; 
     JLabel result , enter1 , enter2 ; 
     public Calculator () {
          setLayout (new GridBagLayout());
          GridBagConstraints c = new GridBagConstraints ();
          
          enter1 = new JLabel ("lst: ");
          c.fill = GridBagConstraints.HORIZONTAL;
          c.gridx = 0; 
          c.gridy = 0;
          add(enter1,c);
          
          num1 = new JTextField(10); 
          c.fill = GridBagConstraints.HORIZONTAL;
          c.gridx = 1;
          c.gridy = 0; 
          c.gridwidth = 3;
          add(num1 , c ) ;
          
          enter2 = new JLabel ("2nd: ") ;
          c.fill = GridBagConstraints.HORIZONTAL ; 
          c.gridx = 0;
          c.gridy = 1;
          c.gridwidth = 1;
          add (enter2 , c ) ;
          
          num2 = new  JTextField(10); 
          c.fill = GridBagConstraints.HORIZONTAL ; 
          c.gridx = 1;
          c.gridy = 1; 
          c.gridwidth = 3; 
          add (num2 , c ) ; 
          
          add = new JButton ("+");
          c.fill = GridBagConstraints.HORIZONTAL ; 
          c.gridx = 0; 
          c.gridy = 2;
          c.gridwidth = 1;
          add (add , c ) ; 
          
          subtract = new JButton ("-") ;
          c.fill = GridBagConstraints.HORIZONTAL ;
          c.gridx = 1; 
          c.gridx = 2;
          add (subtract , c ) ; 
          
          multiply = new JButton ("*") ; 
          c.fill = GridBagConstraints.HORIZONTAL ;
          c.gridx = 2;
          c.gridy = 2;
          add (multiply , c );
          
          divide = new JButton ("/"); 
          c.fill = GridBagConstraints.HORIZONTAL ; 
          c.gridx = 3;
          c.gridy = 2;
          add (divide , c); 
          
          result = new JLabel(""); 
          c.fill = GridBagConstraints.HORIZONTAL ;
          c.gridx = 0;
          c.gridy = 4;
          c.gridwidth = 4;
          
          
          event a = new event () ; 
          add.addActionListener(a) ; 
          subtract.addActionListener(a) ; 
          multiply.addActionListener(a) ; 
          divide.addActionListener(a) ; 
           
     
     } 
     public class event implements ActionListener {
            public void actionPreformed(ActionEvent a) {
               double number1 , number2 ;
               
          
               try {
                    number1 = Double.parseDouble(num1.getText()) ; 
               } catch (NumberFormatException e) {
                    result.setText("Illegal Data");
                    result.setForeground(Color.RED) ; 
                    return; 
                    
                    }
               try {
                   number2 = Double.parseDouble(num2.getText()) ; 
               }catch (NumberFormatException e) {
                   result.setText("illegal data");
                   result.setForeground(Color.RED);
                   return; 
               }
                         String op = a.getActionCommand();
                         
                         if (op.equals("+")) {
                              double sum = number1 + number2 ;
                              result.setText(number1 + "+" + number2 + "=" + sum ) ;
                              result.setForeground(Color.RED) ; 
                         } else if (op.equals("-")) {
                              double diff = number1 - number2 ; 
                              result.setText (number1 + "-" + number2 + "=" + diff) ;     
                              result.setForeground(Color.RED);
                         
                         } else if (op.equals("*")) { 
                              double factor = number1 * number2 ; 
                              result.setText (number1 + "*" + number2 + "=" + factor) ;     
                              result.setForeground(Color.RED);
                         
                              }else if (op.equals("/")) { 
                                   if (number2 == 0) {
                                        result.setText("Cannot Divide by 0") ; 
                                        result.setForeground(Color.RED);
                                   } else {
                                        double quotient = number1 / number2 ; 
                                        result.setText(number1 + "/" + number2 + "=" + quotient);
                                        result.setForeground(Color.RED); 
                                   }
                              }
                                   
                    }
               }
          public static void main (String args []) {
               Calculator gui = new Calculator (); 
               gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
               gui.setVisible(true); 
               gui.setSize(250,175);
               gui.setTitle("Event Night Product!"); 
     }
          }

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points