Article View: es.comp.lenguajes.java
Article #28649Re: Comunicaci�n entre applets
From: Rafa
Date: Fri, 03 Apr 1998 00:00
Date: Fri, 03 Apr 1998 00:00
106 lines
4341 bytes
4341 bytes
Raquel escribi� en mensaje <01bd5e33$bd92f5f0$0701a8c0@qleap3>...
>Hola,
>
>estoy intentando comunicar dos applets de una misma p�gina web. �C�mo se
>hace?
>Me interesar�a que un applet pudiera enviarle texto a otro y viceversa...
>Me consta que se puede, �pero c�mo? Y...
>�hay alguna limitaci�n en el tama�o del texto?
>
>Gracias,
>
> Raquel
Que tal Raquel, aqui te env�o un peque�o ejemplo de como hacer que dos
applets se puedan comunicar en un mismo documento.
Una vez que tienes varias applets dentro de un mismo documento y lo que te
interesa es poder comunicarlas, e incluso poder ejecutar m�todos de una
applet desde otra.
Para ello en primer lugar es necesario dar un nombre a cada applet. Esto se
consigue a�adiendo el atributo NAME a la etiqueta <APPLET> , de la siguiente
manera:
<APPLET CODE=Codigo_applet NAME=Nombre_applet >
Una vez que se han asignado nombres a cada una de las applets, si se desea
invocar desde una de ellas alg�n m�todo de otra se debe incluir una llamada
al m�todo getApplet(...). Por ejemplo si se dispone de dos applets que se
han definido de la siguiente forma:
<APPLET CODE=applet1.class NAME=numero1 >
<APPLET CODE=applet2.class NAME=numero2 >
Para hacer referencia al m�todo borrar() definido en applet1.class desde el
c�digo de applet2.class se utiliza la siguiente estructura:
Applet ap1=getAppletContext().getApplet("numero1");
ap1.borrar();
El ejemplo que te muestro, realizar una p�gina en la que aparecer�n dos
applets, en la primera de ellas aparecer� un bot�n tal que al presionarlo
aparezca un mensaje de saludo en la segunda. En la soluci�n que te adjunto
se ha simplificado al m�ximo el dise�o de la p�gina en la que aparecen las
applets para centrar la atenci�n en el c�digo de comunicaci�n entre applets.
A continuaci�n te env�o los listados de las dos applets, denominadas
ventana.java y boton,java.
import java.awt.*;
public class Ventana extends java.applet.Applet {
String mensaje;
public void saludo(String msg) {
mensaje=new String(msg);
repaint();
}
public void paint(Graphics g) {
Font fnt;
fnt = new Font("TimesRoman",Font.BOLD,28);
g.setFont(fnt);
if(mensaje!=null)
{
g.drawString(mensaje,10,30);
}
}
}
import java.awt.*;
import java.awt.Event;
import java.applet.Applet;
// Define la clase de la otra applet con la que se desea
// comunicar, as� como sus m�todos
// 'abstract' indica que se encuentra implementada en otra parte
abstract class Ventana extends java.applet.Applet {
abstract void saludo(String msg);
}
public class Boton extends java.applet.Applet {
public void init() {
add(new Button("P�lsame para que te Salude"));
}
public boolean action (Event evt, Object obj) {
if (evt.target instanceof Button) {
Applet vent_app=getAppletContext().getApplet("ventana");
((Ventana)vent_app).saludo("Hola amigos");
return(true);
}
return(false);
}
}
Espero que te sirva.
Un saludo...
__________________________________________________________________________
Rafael J. Navajo Garrido Tel.: (+34 1) 336.7411
CETTICO (+34 1)
352.2546
Facultad de Inform�tica
Campus de Montegancedo
28660 - Boadilla del Monte Fax: (+34 1) 336.7412
Madrid
Spain email:
rnavajo@fi.upm.es
__________________________________________________________________________
Technical Details
Message-ID:
<6g30sh$u2$2@panoramix.fi.upm.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<01bd5e33$bd92f5f0$0701a8c0@qleap3>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,34887fc4c4d0ea24 X-Google-Attributes: gid1116f3,public From: "Rafa" <rnavajo@fi.upm.es> Subject: Re: Comunicaci�n entre applets Date: 1998/04/03 Message-ID: <6g30sh$u2$2@panoramix.fi.upm.es> X-Deja-AN: 340559518 References: <01bd5e33$bd92f5f0$0701a8c0@qleap3> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: Facultad de Informatica de Madrid - U.P.M. Newsgroups: es.comp.lenguajes.java