Okay, then in this case, what should the field of my matchApplet be?

the same place as all fields go (public double[][] score; is a field) so in the main class body

Sorry I don't quite get it. =/ Please don't give up on me. ): I really need help. I need to get this done in another 6 hours.

Sorry I don't quite get it. =/ Please don't give up on me. ): I really need help. I need to get this done in another 6 hours.

well, i have annother hour of being bored at work, so dont wory too much. Do you know what a field is?

abstract class Substitution
{
	public Substitution (MatchApplet matchApplet)
	{
             this.matchApplet = matchApplet;

             //this is a local variable, because its in a method
             int local = 0;
             //it cannot be used outside of the method
	}

        //this is a field,
	public double[][] score;
        //all the class methods can use it, outside it kind of "belongs" to its object,
        //and is accesed through the '.'  like myObject.double[][] = something;

        //lets make a new field,
        int field;
        //this can be accessed in methods, and as a 'property' of the class!

Sorry if i'm being a pain, but im tryint not to just write it all for you, if you know what i mean

class Blosum50 extends Substitution
{

	private String residues = MatchApplet.display1;
	private String residues2 = MatchApplet.display2;

	public String getResidues()
	{ return residues; }

	public String getResidues2()
	{ return residues2; }

	private double[][] residuescores = matchApplet.getMyDouble();

	public Blosum50()
	{
		super(matchApplet);
		buildscore(residues, residues2, residuescores);
	}
}

This is what I have so far for my class Blosum50. My super(matchApplet); is in the constructor as you can see. However, even after doing this, I'm still getting error saying, cannot find symbol constructor Blosum50(MatchApplet). Why?

Hi Sunshineserene - I'm not ignoring you,, but while hanvyj is working with you I think it's best for me to keep quiet - two sets of advice simultaneously is bound to be confusing.

class Blosum50 extends Substitution
{

	private String residues = MatchApplet.display1;
	private String residues2 = MatchApplet.display2;

	public String getResidues()
	{ return residues; }

	public String getResidues2()
	{ return residues2; }

	private double[][] residuescores = matchApplet.getMyDouble();

	public Blosum50()
	{
		super(matchApplet);
		buildscore(residues, residues2, residuescores);
	}
}

This is what I have so far for my class Blosum50. My super(matchApplet); is in the constructor as you can see. However, even after doing this, I'm still getting error saying, cannot find symbol constructor Blosum50(MatchApplet). Why?

Very very close, but your constructor accepts no arguments! it needs to accept a MatchApplet, like super(matchApplet) does, you you will need to add MatchApplet matchApplet to its argument list (in the () brackets) so that it knows what matchApplet to pass to the super constructor


edit - JamesCherrill. Thanks, I figured as much. feel free to intervene if you think I'm missing anything/going too much into stuff

The error: cannot find symbol constructor Bolsum50(MatchApplet) is in line 130.

Very very close, but your constructor accepts no arguments! it needs to accept a MatchApplet, like super(matchApplet) does, you you will need to add MatchApplet matchApplet to its argument list (in the () brackets) so that it knows what matchApplet to pass to the super constructor


edit - JamesCherrill. Thanks, I figured as much. feel free to intervene if you think I'm missing anything/going too much into stuff

Oh okay, but where do I add MatchApplet matchApplet at? Do I add it at line 130?

final Substitution sub = new Blosum50(MatchApplet matchApplet);

like this?

Substitution sub = new Blosum50(this);

the exception is on this line here, because its looking for a constructor that doesnt exist,

Substitution sub = new Blosum50();

wouldnt produce this error, but you cannot call super(matchApplet); as matchApplet wont be antying in the constructor

abstract class Substitution
{
    public Substitution (MatchApplet matchApplet)
    {
        //you need to make a field to hold matchApplet
        this.matchApplet = matchApplet;
    }
class Blosum50 extends Substitution
{
   //you need to make a constructor to put this super into
   super(matchApplet);

try doing the above two things

How do I make a field to hold matchApplet? Do I do it within the constructor itself?

Substitution sub = new Blosum50(this);

the exception is on this line here, because its looking for a constructor that doesnt exist,

Substitution sub = new Blosum50();

wouldnt produce this error, but you cannot call super(matchApplet); as matchApplet wont be antying in the constructor

So how? Do I need to call super(matchApplet); ? Is it necessary for my program to work?

abstract class myClass
{
    Double field;    

    //constructor here
    public myClass(Double assignToField)
    {
        this.field = assignToField;
    }
    
    // annother example, this time accessing field, rather than assigning something to it
    public Double getField()
    {
         return this.field;
    }

the above is an example of a field that is a Double, try to use that to make a field that is a MatchApplet (a Double is a class, similar MatchApplet)

edited example to make it a bit clearer

So how? Do I need to call super(matchApplet); ? Is it necessary for my program to work?

well, this brings us back to the origional problem.

Your class needs to have access to the myDouble[][] field in the MatchApplet class. Therefore it needs a reference of that class, a good way to do this would be to pass it in the constructor. Your super class will also need a constructor. If you wish to be able to call matchApplet.getMyDouble(), and it to return the myDouble that you have created in your MatchApplet. Then yes, you need super(matchApplet).

You could allways not do this in the constructor, and make a method called setMatchApplet(MatchApplet matchApplet) and call that every time you made one of the objects, but it seems silly to do all that not to learn how to use super();

import java.io.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;

class MatchApplet extends JApplet
{
	MatchApplet matchApplet;

	TextArea outputArea;
	JButton button;
	JButton reset;

	JTextField tF1;
	JTextField tF2;

	JLabel l1;
	JLabel l2;

	String s1;
	String s2;

	static String display1 = "";
  	static String display2 = "";


	/*static ArrayList myDouble = new ArrayList();
	static String[] temp;
	static String[][] finalTemp;
	static String[] arr;
	static int rows;*/

	double[][] myDouble = new double[1000][1000];
	int x=0, y=0;



	public static void main(String[] args)
	{
		//Application for program
		Frame f = new Frame();
		f.addWindowListener(new java.awt.event.WindowAdapter()
		{
			public void windowClosing(java.awt.event.WindowEvent e)
			{
				System.exit(0);
 			};
		});

  		MatchApplet ut = new MatchApplet();
  		ut.setSize(900,900); // same size as defined in the HTML APPLET
  		f.add(ut);
  		f.pack();
  		ut.init();
  		f.setSize(900,900 + 100); // add 20, seems enough for the Frame title,
  		f.show();
		//end of application for program

	}//end of public static void main(String[] args)



  	public void init()
	{

		try
		{
		BufferedReader in1 = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\1a00(50).txt"));	//reading files in specified directory
		BufferedReader in2 = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\1a0a(50).txt"));	//reading files in specified directory
		BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\Testing2.txt"));	//reading files in specified directory


  			String str1;
			while ((str1 = in1.readLine()) != null)	//file reading
			{
				display1 = str1;
				System.out.print(display1);
  			}
  			in1.close();

  			System.out.println("");

			String str2;
			while ((str2 = in2.readLine()) != null)	//file reading
			{
				display2 = str2;
				System.out.print(display2);
  			}
			in2.close();

			System.out.println("");

			String line;
			while ((line = in.readLine()) != null) //file reading
			{

				String[] values = line.split(",");

	        	for (String str : values)
	        	{
	        		double str_double = Double.parseDouble(str);
	        		myDouble[x][y] = str_double;
	        		System.out.print(myDouble[x][y]);
	        		y=y+1;
	        	}
	        	x=x+1;
	        	y=0;
	        	System.out.println("");
			}


			in.close();


		Container c = getContentPane();
		c.setLayout(new FlowLayout());

		outputArea = new TextArea(40,110);
		Font font = new Font("Courier", Font.PLAIN, 12);
		outputArea.setFont(font);
		outputArea.setEditable(false);

		tF1 = new JTextField(display1);
		tF2 = new JTextField(display2);

		l1 = new JLabel("Sequence 1:");
		l2 = new JLabel("Sequence 2:");

		c.add(l1);
		c.add(tF1);
		c.add(l2);
		c.add(tF2);
		c.add(outputArea);


	final Substitution sub = new Blosum50();


		s1 += tF1.getText();
		s2 += tF2.getText();
		Output out = new Output ()
		{
	  		public void print(String s)
	  		{ outputArea.append(s); }

	  		public void println(String s)
	  		{ outputArea.append(s); outputArea.append("\n"); }

	  		public void println()
	  		{ outputArea.append("\n"); }
		};

	outputArea.setText("");
      (new NW      (sub, 8,     s1, s2)).domatch(out, "GLOBAL ALIGNMENT");
      (new SW      (sub, 8,     s1, s2)).domatch(out, "LOCAL ALIGNMENT");


      }catch( IOException ioException ) {}


  }//end of init()

      double[][] getMyDouble()
      { return myDouble; }

}//end of class




// The class of substitution (scoring) matrices

abstract class Substitution
{
	MatchApplet field;

	public Substitution(MatchApplet matchApplet)
	{
     	this.field = matchApplet;
	}


	public double[][] score;

	void buildscore(String residues, String residues2, double[][] residuescores)
	{
	// Allow lowercase and uppercase residues (ASCII code <= 127):
	score = new double[127][127];
	for (int i=0; i<residues.length(); i++)
    {
		char res1 = residues.charAt(i);
		for (int j=0; j<=i; j++)
		{
        char res2 = residues2.charAt(j);
        score[res1][res2] = score[res2][res1]
	  = score[res1][res2+32] = score[res2+32][res1]
	  = score[res1+32][res2] = score[res2][res1+32]
	  = score[res1+32][res2+32] = score[res2+32][res1+32]
	  = residuescores[i][j];
      	}
    }
  	}

	abstract public String getResidues();
	abstract public String getResidues2();




}


// The BLOSUM50 substitution matrix for amino acids (Durbin et al, p 16)

class Blosum50 extends Substitution
{

	private String residues = MatchApplet.display1;
	private String residues2 = MatchApplet.display2;

	public String getResidues()
	{ return residues; }

	public String getResidues2()
	{ return residues2; }

	private double[][] residuescores = field.getMyDouble();

	public Blosum50()
	{
		//super(matchApplet);
		buildscore(residues, residues2, residuescores);
	}
}

Okay I've done what you have said. However, there one error saying, cannot find symbol constructor Substitution() at my constructor Blosum50()

well, this brings us back to the origional problem.

Your class needs to have access to the myDouble[][] field in the MatchApplet class. Therefore it needs a reference of that class, a good way to do this would be to pass it in the constructor. Your super class will also need a constructor. If you wish to be able to call matchApplet.getMyDouble(), and it to return the myDouble that you have created in your MatchApplet. Then yes, you need super(matchApplet).

You could allways not do this in the constructor, and make a method called setMatchApplet(MatchApplet matchApplet) and call that every time you made one of the objects, but it seems silly to do all that not to learn how to use super();

Oh my god... Okay, slowly, step by step, can you tell me how do I start? What reference do I need in which class? My super class constructor would be Blosum50() in the class Blosum50 right?

Thats right, though you may want to call field what you were doing before (ie matchApplet, so its not so confusing when you use it)

Now you need to have a Blosum50 constructor that uses the superclass constructor Substitution(MatchApplet matchApplet) (this is whats called when you say super(matchApplet) in your Blosum50 constructor)

Because the superclass takes a MatchApplet as an argument the Blosum50 doesnt know what to do (it cant mach the default constructor, which java 'hides' with any constructors in the super class - i think)

Oh my god... Okay, slowly, step by step, can you tell me how do I start? What reference do I need in which class? My super class constructor would be Blosum50() in the class Blosum50 right?

Well, you are nearly there. You have the reference in your sub class fine now (its currently named field) The superclass constructor will be Blosum50(MatchApplet matchApplet) and essencially all it does is pass the matchApplet variable to its super class using super(matchApplet);

You can then access the MatchApplet you have created in your main (passed in the constructor as this) in your Blosum50 method by using field.getMyDouble() (if its still called that)

Thats right, though you may want to call field what you were doing before (ie matchApplet, so its not so confusing when you use it)

Now you need to have a Blosum50 constructor that uses the superclass constructor Substitution(MatchApplet matchApplet) (this is whats called when you say super(matchApplet) in your Blosum50 constructor)

Because the superclass takes a MatchApplet as an argument the Blosum50 doesnt know what to do (it cant mach the default constructor, which java 'hides' with any constructors in the super class)

So meaning something like this

super(field);

in my Blosum50 constructor instead of

super(matchApplet);

?

Okay so how do I implement the superclass constructor Substitution(MatchApplet matchApplet)?

import java.io.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;

class MatchApplet extends JApplet
{
	MatchApplet matchApplet;

	TextArea outputArea;
	JButton button;
	JButton reset;

	JTextField tF1;
	JTextField tF2;

	JLabel l1;
	JLabel l2;

	String s1;
	String s2;

	static String display1 = "";
  	static String display2 = "";


	double[][] myDouble = new double[1000][1000];
	int x=0, y=0;



	public static void main(String[] args)
	{
		//Application for program
		Frame f = new Frame();
		f.addWindowListener(new java.awt.event.WindowAdapter()
		{
			public void windowClosing(java.awt.event.WindowEvent e)
			{
				System.exit(0);
 			};
		});

  		MatchApplet ut = new MatchApplet();
  		ut.setSize(900,900); // same size as defined in the HTML APPLET
  		f.add(ut);
  		f.pack();
  		ut.init();
  		f.setSize(900,900 + 100); // add 20, seems enough for the Frame title,
  		f.show();
		//end of application for program

	}//end of public static void main(String[] args)



  	public void init()
	{

		try
		{
		BufferedReader in1 = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\1a00(50).txt"));	//reading files in specified directory
		BufferedReader in2 = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\1a0a(50).txt"));	//reading files in specified directory
		BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\Testing2.txt"));	//reading files in specified directory


  			String str1;
			while ((str1 = in1.readLine()) != null)	//file reading
			{
				display1 = str1;
				System.out.print(display1);
  			}
  			in1.close();

  			System.out.println("");

			String str2;
			while ((str2 = in2.readLine()) != null)	//file reading
			{
				display2 = str2;
				System.out.print(display2);
  			}
			in2.close();

			System.out.println("");

			String line;
			while ((line = in.readLine()) != null) //file reading
			{

				String[] values = line.split(",");

	        	for (String str : values)
	        	{
	        		double str_double = Double.parseDouble(str);
	        		myDouble[x][y] = str_double;
	        		System.out.print(myDouble[x][y]);
	        		y=y+1;
	        	}
	        	x=x+1;
	        	y=0;
	        	System.out.println("");
			}


			in.close();


		Container c = getContentPane();
		c.setLayout(new FlowLayout());

		outputArea = new TextArea(40,110);
		Font font = new Font("Courier", Font.PLAIN, 12);
		outputArea.setFont(font);
		outputArea.setEditable(false);

		tF1 = new JTextField(display1);
		tF2 = new JTextField(display2);

		l1 = new JLabel("Sequence 1:");
		l2 = new JLabel("Sequence 2:");

		c.add(l1);
		c.add(tF1);
		c.add(l2);
		c.add(tF2);
		c.add(outputArea);


	final Substitution sub = new Blosum50(this);


		s1 += tF1.getText();
		s2 += tF2.getText();
		Output out = new Output ()
		{
	  		public void print(String s)
	  		{ outputArea.append(s); }

	  		public void println(String s)
	  		{ outputArea.append(s); outputArea.append("\n"); }

	  		public void println()
	  		{ outputArea.append("\n"); }
		};

	outputArea.setText("");
      (new NW      (sub, 8,     s1, s2)).domatch(out, "GLOBAL ALIGNMENT");
      (new SW      (sub, 8,     s1, s2)).domatch(out, "LOCAL ALIGNMENT");


      }catch( IOException ioException ) {}


  }//end of init()

      double[][] getMyDouble()
      { return myDouble; }

}//end of class




// The class of substitution (scoring) matrices

abstract class Substitution
{
	MatchApplet field;

	public Substitution(MatchApplet matchApplet)
	{
     	this.field = matchApplet;
	}


	public double[][] score;

	void buildscore(String residues, String residues2, double[][] residuescores)
	{
	// Allow lowercase and uppercase residues (ASCII code <= 127):
	score = new double[127][127];
	for (int i=0; i<residues.length(); i++)
    {
		char res1 = residues.charAt(i);
		for (int j=0; j<=i; j++)
		{
        char res2 = residues2.charAt(j);
        score[res1][res2] = score[res2][res1]
	  = score[res1][res2+32] = score[res2+32][res1]
	  = score[res1+32][res2] = score[res2][res1+32]
	  = score[res1+32][res2+32] = score[res2+32][res1+32]
	  = residuescores[i][j];
      	}
    }
  	}

	abstract public String getResidues();
	abstract public String getResidues2();




}


// The BLOSUM50 substitution matrix for amino acids (Durbin et al, p 16)

class Blosum50 extends Substitution
{

	private String residues = MatchApplet.display1;
	private String residues2 = MatchApplet.display2;

	public String getResidues()
	{ return residues; }

	public String getResidues2()
	{ return residues2; }

	private double[][] residuescores = field.getMyDouble();

	public Blosum50(MatchApplet matchApplet)
	{
		super(field);
		buildscore(residues, residues2, residuescores);
	}
}

Okay this is what I've got now. The only error now is:

cannot reference field before supertype constructor has been called

So meaning something like this

super(field);

in my Blosum50 constructor instead of

super(matchApplet);

?

Okay so how do I implement the superclass constructor Substitution(MatchApplet matchApplet)?

no no, if you follow that through, super(field); gives the super class field, which then assignes what its given to field. So you would be assigning the field a reference to itself, which would be pointless.

you imlement the superclass constructor Substitution(MatchApplet matchApplet) by calling super(matchApplet) where matchApplet is the MatchApplet that your sub class has been given (in its constructor)

import java.io.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;

class MatchApplet extends JApplet
{
	MatchApplet matchApplet;

	TextArea outputArea;
	JButton button;
	JButton reset;

	JTextField tF1;
	JTextField tF2;

	JLabel l1;
	JLabel l2;

	String s1;
	String s2;

	static String display1 = "";
  	static String display2 = "";


	double[][] myDouble = new double[1000][1000];
	int x=0, y=0;



	public static void main(String[] args)
	{
		//Application for program
		Frame f = new Frame();
		f.addWindowListener(new java.awt.event.WindowAdapter()
		{
			public void windowClosing(java.awt.event.WindowEvent e)
			{
				System.exit(0);
 			};
		});

  		MatchApplet ut = new MatchApplet();
  		ut.setSize(900,900); // same size as defined in the HTML APPLET
  		f.add(ut);
  		f.pack();
  		ut.init();
  		f.setSize(900,900 + 100); // add 20, seems enough for the Frame title,
  		f.show();
		//end of application for program

	}//end of public static void main(String[] args)



  	public void init()
	{

		try
		{
		BufferedReader in1 = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\1a00(50).txt"));	//reading files in specified directory
		BufferedReader in2 = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\1a0a(50).txt"));	//reading files in specified directory
		BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\Serene\\Documents\\Major Project\\Alignment Algorithms\\Testing2.txt"));	//reading files in specified directory


  			String str1;
			while ((str1 = in1.readLine()) != null)	//file reading
			{
				display1 = str1;
				System.out.print(display1);
  			}
  			in1.close();

  			System.out.println("");

			String str2;
			while ((str2 = in2.readLine()) != null)	//file reading
			{
				display2 = str2;
				System.out.print(display2);
  			}
			in2.close();

			System.out.println("");

			String line;
			while ((line = in.readLine()) != null) //file reading
			{

				String[] values = line.split(",");

	        	for (String str : values)
	        	{
	        		double str_double = Double.parseDouble(str);
	        		myDouble[x][y] = str_double;
	        		System.out.print(myDouble[x][y]);
	        		y=y+1;
	        	}
	        	x=x+1;
	        	y=0;
	        	System.out.println("");
			}


			in.close();


		Container c = getContentPane();
		c.setLayout(new FlowLayout());

		outputArea = new TextArea(40,110);
		Font font = new Font("Courier", Font.PLAIN, 12);
		outputArea.setFont(font);
		outputArea.setEditable(false);

		tF1 = new JTextField(display1);
		tF2 = new JTextField(display2);

		l1 = new JLabel("Sequence 1:");
		l2 = new JLabel("Sequence 2:");

		c.add(l1);
		c.add(tF1);
		c.add(l2);
		c.add(tF2);
		c.add(outputArea);


	final Substitution sub = new Blosum50(this);


		s1 += tF1.getText();
		s2 += tF2.getText();
		Output out = new Output ()
		{
	  		public void print(String s)
	  		{ outputArea.append(s); }

	  		public void println(String s)
	  		{ outputArea.append(s); outputArea.append("\n"); }

	  		public void println()
	  		{ outputArea.append("\n"); }
		};

	outputArea.setText("");
      (new NW      (sub, 8,     s1, s2)).domatch(out, "GLOBAL ALIGNMENT");
      (new SW      (sub, 8,     s1, s2)).domatch(out, "LOCAL ALIGNMENT");


      }catch( IOException ioException ) {}


  }//end of init()

      double[][] getMyDouble()
      { return myDouble; }

}//end of class




// The class of substitution (scoring) matrices

abstract class Substitution
{
	MatchApplet field;

	public Substitution(MatchApplet matchApplet)
	{
     	this.field = matchApplet;
	}


	public double[][] score;

	void buildscore(String residues, String residues2, double[][] residuescores)
	{
	// Allow lowercase and uppercase residues (ASCII code <= 127):
	score = new double[127][127];
	for (int i=0; i<residues.length(); i++)
    {
		char res1 = residues.charAt(i);
		for (int j=0; j<=i; j++)
		{
        char res2 = residues2.charAt(j);
        score[res1][res2] = score[res2][res1]
	  = score[res1][res2+32] = score[res2+32][res1]
	  = score[res1+32][res2] = score[res2][res1+32]
	  = score[res1+32][res2+32] = score[res2+32][res1+32]
	  = residuescores[i][j];
      	}
    }
  	}

	abstract public String getResidues();
	abstract public String getResidues2();




}


// The BLOSUM50 substitution matrix for amino acids (Durbin et al, p 16)

class Blosum50 extends Substitution
{

	private String residues = MatchApplet.display1;
	private String residues2 = MatchApplet.display2;

	public String getResidues()
	{ return residues; }

	public String getResidues2()
	{ return residues2; }

	private double[][] residuescores = field.getMyDouble();

	public Blosum50(MatchApplet matchApplet)
	{
		super(field);
		buildscore(residues, residues2, residuescores);
	}
}

Okay this is what I've got now. The only error now is:

cannot reference field before supertype constructor has been called

if you see my above post it explains why you dont want to give field to the super class constructor, you want to give it the matchApplet that Blosum50(MatchApplet matchApplet) has been given (ie matchApplet, not field)

edit - that should finish it, hope there are no errors! I'm going home now, might take me an hour or more so I wont be able to help you for a whil

OMG YES IT'S WORKING!!!!!!!!! THANK YOU SO MUCH HANVYJ!!!!!!!!!
I'm utterly grateful towards you. Thank you!!!!!!!! :)

OMG YES IT'S WORKING!!!!!!!!! THANK YOU SO MUCH HANVYJ!!!!!!!!!
I'm utterly grateful towards you. Thank you!!!!!!!! :)

hurah! Please mark the thread as solved and have a big think about everything you did, so you can do it again in the future

I'm sorry! I hope you're still there. I just want to ask, if my program is an applet or application?

I'm sorry! I hope you're still there. I just want to ask, if my program is an applet or application?

I'm home now, lol. I know nothing about applets, but it looks like you are making a JFrame, i which case its a program i think...

If you run it in a browser its an applet, if it runs on its own (you can pack it into a jar, maybe?) then its a program.

But an applet is a program really. Just one that runs in a browser not on its own/in its own frame. Might want to ask someone else though, i know nothing about applets!

Okay it's alright, thanks anyways! (:

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.