Logo 
Search:

Java Forum

Ask Question   UnAnswered
Home » Forum » Java       RSS Feeds

JApplet Problem

  Asked By: Ronnie    Date: Oct 08    Category: Java    Views: 674
  

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.


// 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 );
}
}

Share: 

 

2 Answers Found

 
Answer #1    Answered By: Lurline Fischer     Answered On: Oct 08

A way to use a class  as both an application  and applet  is to have the
main method call init... ie:

public class EitherWay extends javax.swing.JApplet {
public static void main (String[] args) {
EitherWay theApp = new EitherWay();
theApp.init();
}
public void init () {
// begin...
}
}

for more details about applets:
java.sun.com/docs/books/tutorial/applet/index.html

 
Answer #2    Answered By: Alfonsine Miller     Answered On: Oct 08

I am not sure if this is the one  that you are looking for.
Let the class  extends the JApplet as follow:

public class calcg extends JApplet implements ActionListener {
.....

// Initialize the applet
public void init() {
new calcg();
}

public calcg() {
//Create Title
//super("Calculator");
...
//Set size  and make visible
//setSize( 190, 225 );
//setVisible( true );
//setResizable( false  );
}

public void actionPerformed(ActionEvent ae) {
...
}

public static void main(String[] args) {
calcg application  = new calcg();

JFrame frame = new JFrame("Calculator");
frame.getContentPane().add(application);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(..,..);
frame.setVisible(true);
}
}

By doing this, the application can be run as a standalone
and as an applet.

I hope this will help  to solve your problem.

 
Didn't find what you were looking for? Find more on JApplet Problem Or get search suggestion and latest updates.




Tagged: