Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / GUI / December 2003

Tip: Looking for answers? Try searching our database.

Help With Calculator Program!

Thread view: 
Maria Laura Re - 07 Dec 2003 15:57 GMT
Hi everybody,

I'm trying to make this calculator program work as an applet AND as an
application.  I tried using:

public class calcg extends JApplet implements ActionListener{

in many different ways, but it didn't work.  Can sombody help me make
it work?

Below is the source code for my calculator program.  

Thanks in advance,

-Maria

ps-You can also e-mail me at laurare@rocketmail.com

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

public class calcg extends JFrame implements ActionListener
{
 private JButton one, two, three, four, five, six, seven,
eight, nine, zero, dec, eq, plus, minus, mult, div, clear;
 private JLabel output, spacer;
 private Container container;
 private String operation;
 private double num1, num2, answer;
 private boolean clear_flag = false;
 
 //set up GUI
 public calcg()
 {
   //Create 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 );
   
   //set up spacer
   spacer = new JLabel( "                                        
" );
   container.add( spacer );
   
   //set up clear
   clear = new JButton( "CE" );
   clear.addActionListener(this);
   container.add( clear );
   
   //set up seven and register its event handler
   seven = new JButton( "7" );
   seven.addActionListener(this);
   container.add( seven );

   
   //set up eight
   eight = new JButton( "8" );
   eight.addActionListener(this);
   container.add( eight );
   
   //set up nine
   nine = new JButton( "9" );
   nine.addActionListener(this);
   container.add( nine );
   
   //set up div
   div = new JButton( "/" );
   div.addActionListener(this);
   container.add( div );
   
   //set up four
   four = new JButton( "4" );
   four.addActionListener(this);
   container.add( four );
   
   //set up five
   five = new JButton( "5" );
   five.addActionListener(this);
   container.add( five );
   
   //set up six
   six = new JButton( "6" );
   six.addActionListener(this);
   container.add( six );
   
   //set up mult
   mult = new JButton( "*" );
   mult.addActionListener(this);
   container.add( mult );
   
   //set up one
   one = new JButton( "1" );
   one.addActionListener(this);
   container.add( one );
   
   //set up two
   two = new JButton( "2" );
   two.addActionListener(this);
   container.add( two );
   
   //set up three
   three = new JButton( "3" );
   three.addActionListener(this);
   container.add( three );
   
   //set up minus
   minus = new JButton( "-" );
   minus.addActionListener(this);
   container.add( minus );
   
   //set up zero
   zero = new JButton( "0" );
   zero.addActionListener(this);
   container.add( zero );
   
   //set up dec
   dec = new JButton( "." );
   dec.addActionListener(this);
   container.add( dec );
   
   //set up eq
   eq = new JButton( "=" );
   eq.addActionListener(this);
   container.add( eq );
   
   //set up plus
   plus = new JButton( "+" );
   plus.addActionListener(this);
   container.add( plus );
   
   //Set size and make visible
   setSize( 190, 225 );
   setVisible( true );
   setResizable( false );
 }
 
 public void actionPerformed(ActionEvent ae)
 {   
   JButton but = ( JButton )ae.getSource();   

   //Handle what button was pushed
   //Action for dec button
   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() );
   }
   
   //Action for clear button
   else if( but.getText() == "CE" )
   {
     output.setText( "" );
     operation = "";
     num1 = 0.0;
     num2 = 0.0;
   }
   
   //Action for plus button
   else if( but.getText() == "+" )
   {
     operation = "+";
     num1 = Double.parseDouble( output.getText() );
     clear_flag = true;
     //output.setText( "" );
   }
   
   //Action for minus button
   else if( but.getText() == "-" )
   {
     operation = "-";
     num1 = Double.parseDouble( output.getText() );
     clear_flag = true;
     //output.setText( "" );
   }
   
   //Action for mult button
   else if( but.getText() == "*" )
   {
     operation = "*";
     num1 = Double.parseDouble( output.getText() );
     clear_flag = true;
     //output.setText( "" );
   }
   
   //Action for div button
   else if( but.getText() == "/" )
   {
     operation = "/";
     num1 = Double.parseDouble( output.getText() );
     clear_flag = true;
     //output.setText( "" );
   }
   
   //Action for eq button
   else if( but.getText() == "=" )
   {
     num2 = Double.parseDouble( output.getText() );
     //handle addition
     if( operation == "+" )
       answer = num1 + num2;
     else if( operation == "-" )
       answer = num1 - num2;
     else if( operation == "*" )
       answer = num1 * num2;
     else if( operation == "/" )
       answer = num1 / num2;        
     
     //display answer in output field
     output.setText( String.valueOf( answer ) );
     
     clear_flag = true;
     operation = "";
   }
   
   //Default action should only be used for numbers
   else
   {
     if( clear_flag == true )
     {
       output.setText( "" );
       clear_flag = false;
     }
     output.setText( output.getText() + but.getText() );
   }
 }
 
 //execute application
 public static void main( String args[] )
 {
   calcg application = new calcg();
   
   application.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE );
 }
}
Andrew Thompson - 07 Dec 2003 16:26 GMT
> Hi everybody,
>
> I'm trying to make this calculator program work as an applet AND as an
> application.  I tried using:

An easy way to do that is to put the main
calculator functionality into a single panel
and use that panel for both the frame and
applet.

That is the strategy I used for..
http://www.physci.org/applet/Calculet.htm

It is open source, you can see the source, here
http://www.physci.org/codes/?zip=%2FPhySci.jar&dflt=Calculet.java

Note that the JApplet itself is very short, it
simply drops a CalculatorPanel into the
content pane..

HTH

--
Andrew Thompson
* http://www.PhySci.org/ PhySci software suite
* http://www.1point1C.org/ 1.1C - Superluminal!
* http://www.AThompson.info/andrew/ personal site


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.