Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

URGENT Help With Scientific Calculator!

843807Dec 13 2003 — edited Dec 14 2003
Hi everybody,

I designed a calculator, and I need help with the rest of the actions. I know I need to use the different Math methods, but I tried tried that and it didn't work. Also, it needs to work as an applet and application, and in the applet, the buttons don't appear in order, how can I fix that?

I will really appreciate your help with this program, I can't get it to work and I'm frustrated, I need to finish this for next Tuesday 16th. Please e-mail me at laurare@rocketmail.com.

Below is the code for the calcualtor.

Thanks a lot!

-Maria
// calculator 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class calculator extends JApplet implements 
ActionListener
{
  private JButton one, two, three, four, five, six, seven, 
  eight, nine, zero, dec, eq, plus, minus, mult, div, clear,
  mem, mrc, sin, cos, tan, asin, acos, atan, x2, sqrt, exp, pi, percent;
  private JLabel output, blank;
  private Container container;
  private String operation;
  private double number1, number2, result;
  private boolean clear = false;
  
  //GUI
  public void init()
  {
    
    container = getContentPane();
    //Title
    //super("Calculator");
    JPanel container = new JPanel();	
    container.setLayout( new FlowLayout( FlowLayout.CENTER 
) );
    
    output = new JLabel("");	
    output.setBorder(new MatteBorder(2,2,2,2,Color.gray));
    output.setPreferredSize(new Dimension(1,26));	
    getContentPane().setBackground(Color.white);	
    getContentPane().add( "North",output );	
    getContentPane().add( "Center",container );
    
    //blank
    blank = new JLabel( "                    " );
    container.add( blank );
    
    //clear
    clear = new JButton( "CE" );
    clear.addActionListener(this);
    container.add( clear );
    
    //seven
    seven = new JButton( "7" );
    seven.addActionListener(this);
    container.add( seven );

    
    //eight
    eight = new JButton( "8" );
    eight.addActionListener(this);
    container.add( eight );
    
    //nine
    nine = new JButton( "9" );
    nine.addActionListener(this);
    container.add( nine );
    
    //div
    div = new JButton( "/" );
    div.addActionListener(this);
    container.add( div );
    
    //four
    four = new JButton( "4" );
    four.addActionListener(this);
    container.add( four );
    
    //five
    five = new JButton( "5" );
    five.addActionListener(this);
    container.add( five );
    
    //six
    six = new JButton( "6" );
    six.addActionListener(this);
    container.add( six );
    
    //mult
    mult = new JButton( "*" );
    mult.addActionListener(this);
    container.add( mult );
    
    //one
    one = new JButton( "1" );
    one.addActionListener(this);
    container.add( one );
    
    //two
    two = new JButton( "2" );
    two.addActionListener(this);
    container.add( two );
    
    //three
    three = new JButton( "3" );
    three.addActionListener(this);
    container.add( three );
    
    //minus
    minus = new JButton( "-" );
    minus.addActionListener(this);
    container.add( minus );
    
    //zero
    zero = new JButton( "0" );
    zero.addActionListener(this);
    container.add( zero );
    
    //dec
    dec = new JButton( "." );
    dec.addActionListener(this);
    container.add( dec );
    
    //plus
    plus = new JButton( "+" );
    plus.addActionListener(this);
    container.add( plus ); 

    //mem
    mem = new JButton( "MEM" );
    mem.addActionListener(this);
    container.add( mem );    

    //mrc
    mrc = new JButton( "MRC" );
    mrc.addActionListener(this);
    container.add( mrc );

    //sin
    sin = new JButton( "SIN" );
    sin.addActionListener(this);
    container.add( sin );

    //cos
    cos = new JButton( "COS" );
    cos.addActionListener(this);
    container.add( cos );
   
    //tan
    tan = new JButton( "TAN" );
    tan.addActionListener(this);
    container.add( tan );
    
    //asin
    asin = new JButton( "ASIN" );
    asin.addActionListener(this);
    container.add( asin );

    //acos
    acos = new JButton( "ACOS" );
    cos.addActionListener(this);
    container.add( cos );
   
    //atan
    atan = new JButton( "ATAN" );
    atan.addActionListener(this);
    container.add( atan );

    //x2
    x2 = new JButton( "X2" );
    x2.addActionListener(this);
    container.add( x2 );

    //sqrt
    sqrt = new JButton( "SQRT" );
    sqrt.addActionListener(this);
    container.add( sqrt );

    //exp
    exp = new JButton( "EXP" );
    exp.addActionListener(this);
    container.add( exp );

    //pi
    pi = new JButton( "PI" );
    pi.addActionListener(this);
    container.add( pi );

    //percent
    percent = new JButton( "%" );
    percent.addActionListener(this);
    container.add( percent );

    //eq
    eq = new JButton( "=" );
    eq.addActionListener(this);
    container.add( eq );

    //Set size and visible
    setSize( 190, 285 );
    setVisible( true );
  }
  

public static void main(String args[]){
    //execute applet as application

	//applet's window
	JFrame applicationWindow = new JFrame("calculator");
	
applicationWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	//applet instance
	calculator appletObject = new calculator();
	
	//init and start methods
	appletObject.init();
	appletObject.start();



  } // end main


  public void actionPerformed(ActionEvent ae)
  {	
    JButton but = ( JButton )ae.getSource();	


    //dec action
    if( but.getText() == "." )
    {
      //if dec is pressed, first check to make shure there 
is not already a decimal 
      String temp = output.getText();
      if( temp.indexOf( '.' ) == -1 )
        output.setText( output.getText() + but.getText() );
    }
    
    //clear action
    else if( but.getText() == "CE" )
    {
      output.setText( "" );
      operation = "";
      number1 = 0.0;
      number2 = 0.0;
    }
    
    //plus action
    else if( but.getText() == "+" )
    {
      operation = "+";
      number1 = Double.parseDouble( output.getText() );
      clear = true;
      //output.setText( "" );
    }
    
    //minus action
    else if( but.getText() == "-" )
    {
      operation = "-";
      number1 = Double.parseDouble( output.getText() );
      clear = true;
      //output.setText( "" );
    }
    
    //mult action
    else if( but.getText() == "*" )
    {
      operation = "*";
      number1 = Double.parseDouble( output.getText() );
      clear = true;
      //output.setText( "" );
    }
    
    //div action
    else if( but.getText() == "/" )
    {
      operation = "/";
      number1 = Double.parseDouble( output.getText() );
      clear = true;
      //output.setText( "" );
    }
    
    //eq action
    else if( but.getText() == "=" )
    {
      number2 = Double.parseDouble( output.getText() );
      if( operation == "+" )
        result = number1 + number2;
      else if( operation == "-" )
        result = number1 - number2;
      else if( operation == "*" )
        result = number1 * number2;
      else if( operation == "/" )
        result = number1 / number2;        


      //output result
      output.setText( String.valueOf( result ) ); 
      
      clear = true;
      operation = "";
    }
    

    //default action
    else
    {
      if( clear == true )
      {
        output.setText( "" );
        clear = false;
      }
      output.setText( output.getText() + but.getText() );
    }
  }
  
}
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 11 2004
Added on Dec 13 2003
1 comment
133 views