¿Se puede hacer lo que quiero?

Ambar
10 de Junio del 2004
Hola!

Me gustaría saber si se puede hacer lo siguiente:
Tengo un applet en el que realizo una serie de cosas, y los resultados los voy guardando en unas variables... En un momento determinado, paso a otra página que contiene otro applet. Mi pregunta es la siguiente:
¿Puedo pasar los parámetros del primer applet al segundo?
Si es así, ¿Cómo? Tedría que añadirle los parámetros al segundo applet? Pero si tb quiero poder abrir esta página sin haber abierto la primera, ¿me daría problemas?

Espero haberme explicado bien. Gracias por vuestra ayuda por anticipado.

defana
10 de Junio del 2004
por que no heredas el programa e implementas un metodo que te regrese los valores y asi los tienes en el segundo applet como variables simples.

CherLUX
10 de Junio del 2004
Coincido con tigo. Es mejor ya que esta en un paradigma O.O. Asi que puedes tener una superclase padre:

public class padreDeApplets
{
static int variable 1
static ... variable 2

}

que al tener desendientes van a compartir las variables y por ser estas estaticas el valor sera el mismo para ambas

Por sino sabes como se hace la herencia:

public class appletHija extends Applet implements padreDeApplets
{
}

Heihachi
10 de Junio del 2004
Hay que ver lo que me complico. He hecho la prueba y va bien.

Bueno, en realidad deberías ser:
public class padreDeApplets extends Applet //o JApplet
{
static int variable 1
static ... variable 2

}

public class appletHija extends padreDeApplets {

}

De la otra manera no compila. No podemos hacer herencia múltiple y tampoco podemos poner padreDeApplets como interface ya que no podríamos modificar los valores de las variables.

Así y todo tengo una duda. Los dos applets comparten variables a través de la clase padreDeApplets. En un momento dado descargamos uno de los applets para cargar el segundo (aquí es donde queremos pasar parámetros de uno a otro) con un showdocument o un link en la página o lo que sea. ¿Podemos estar seguros de que el cargador de clases no va a descargar la clase padreDeApplets? La verdad es que después de descargar el primero y antes de cargar el segundo no hace falta la clase en memoria.

Supongo que si la descargara y tuviera que cargarla de nuevo se perderían los valores por el camino.

A parte de mis dudas rebuscadas ha funcionado.
Este ha sido el experimento, por si alguien se aburre y lo quiere repetir:
//Classe padre
import javax.swing.*;
public abstract class Padre extends JApplet{
public static int averaver=0;
}

//applet1
public class Applet1 extends Padre{
public void init(){
System.out.println("Valor incial de averaver. averaver="+averaver);
averaver=2;
System.out.println("Applet1 inicializa averaver. averaver="+averaver);
}
}

//Applet2
public class Applet2 extends Padre{
public void init(){
System.out.println("Valor incial de averaver en applet2. averaver="+averaver);
}
}

//untitled1.html
<applet code="Applet1.class"
width="600" height="95">
<param name="maxwidth" value="120">
<param name="nimgs" value="17">
<param name="offset" value="-57">
<param name="img" value="images/tumble">

Your browser is completely ignoring the &lt;APPLET&gt; tag!
</applet>
<A href="untitled2.html">link</a>

//untitled2.html
<applet code="Applet2.class"
width="600" height="95">
<param name="maxwidth" value="120">
<param name="nimgs" value="17">
<param name="offset" value="-57">
<param name="img" value="images/tumble">

Your browser is completely ignoring the &lt;APPLET&gt; tag!
</applet>

El valor de averaver es 0 antes de cargar el primer applet, 2 después, y al pulsar el link para cargar el segundo conserva su valor

Luis Bastidas
10 de Junio del 2004
hola!
Quisiera que me ayudes con el codigo fuente de como se comunican varios applets que se encuentran en una misma pagina.
El programa que quiero hacer es el siguiente:
En un applet1 se ingresa el nombre de la persona y un mensaje de texto.
En el applet2 se desea incluir una lista de opciones de fondos(imagenes) a presentar en el tercer applet.
El applet3 recibe el nombre, el mensaje del applet1 y ademas se agrega un fondo escogido en el applet2.
De antemano gracias por su ayuda!

Ambar
10 de Junio del 2004
Muchas gracias por vuestra ayuda!

Todavía no he podido probarlo, pero muchisimas gracias.

Saludos!


Heihachi
10 de Junio del 2004
Si el primer applet llama al segundo con un showdocument puedes codificar los parametros que quieras pasar en la URL con algo como:
showDocument(".../applet2.html?var1=valor1;var2=valor2,...")

Con javascript puedes recuperar las variables y sus valores y generar un HTML que tenga en el tag Applet (o object, embed o el que sea) los parámetros:
<PARAM NAME = "var1" VALUE ="valor1">...

Para recoger en estos valores en el segundo applet tienes el mètodo getParameter("var1"),...

El único problema si no has definido estos parámetros es que el getParameter te devuelve null. Si contemplas esa posibilidad no hay más problema.

Espero que te sirva.
Saludos!

Ambar
10 de Junio del 2004
Gracias!
Intentaré hacerlo como me indicas.

Saludos!