|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
[java applet] Problema nella comunicazione tra applet su una stessa pagina.
Ciao a tutti,
sto cercando di far comunicare due applet che si trovano sulla stessa pagina. Ho seguito un esempio, adattandolo al mio caso specifico ma qualcosa non funziona, ecco qui la parte del codice che da problemi: Codice:
logger.debug("Mouse pressed");
AppletContext ac = getAppletContext();
RMIApplet dataApplet = (RMIApplet) ac.getApplet("getDataApplet");
if (dataApplet==null){
logger.debug("applet NOT found :( ");
}
else{
logger.debug("applet FOUND :) ");
}
Quote:
Se invece provo a recuperare un oggetto di tipo Applet generico modificando la riga 3 in questo modo Codice:
logger.debug("Mouse pressed");
AppletContext ac = getAppletContext();
Applet dataApplet = ac.getApplet("getDataApplet");
if (dataApplet==null){
logger.debug("applet NOT found :( ");
}
else{
logger.debug("applet FOUND :) ");
}
Dov'è che sbaglio? Ultima modifica di Player1 : 24-12-2011 alle 18:46. |
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
Faccio un piccolo up visto che è passato qualche giorno e non sono ancora riuscito a risolvere il problema, nessuno ha mai fatto comunicare applet che si trovano sulla stessa pagina?
Please HEEELP!! |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
Non riesco proprio a risolvere.
Inserisco maggiori dettagli e provo a ragionarci un po' qui nella speranza che qualcuno riesca a darmi una mano. Infondo si tratta del meccanismo di cast di Java non ho preso chissà quale strana e marginale funzione, sto seguendo rigorosamente (credo) la logica Java e non si tratta di 10000 righe di codice sono solo 2 o 3. Perché non funziona? Allora, ricapitoliamo, ho un oggetto di tipo AppletContext che ottengo così: Codice:
AppletContext ac = getAppletContext(); Codice:
Applet getApplet(String name) quindi se io scrivo questo: Codice:
AppletContext ac = getAppletContext();
Applet myApplet = ac.getApplet("appletName");
Ok, ora provo a forzare il cast, dovrebbe funzionare ugualmente, giusto?!? A me non da errori: Codice:
AppletContext ac = getAppletContext();
Applet myApplet = (Applet) ac.getApplet("appletName");
Ora, io ho creato un nuovo tipo di oggetto RMIApplet che estende Applet. Codice:
public class RMIApplet extends Applet {
Visto che RMIApplet estende Applet, non dovrebbe essere SEMPRE possibile convertire un oggetto di un determinato tipo in uno di un tipo che lo estende?! Riporto qui di seguito il codice completo: Codice:
AppletContext ac = getAppletContext();
Applet myApplet = (Applet) ac.getApplet("getDataApplet");
RMIApplet myRmiApplet = (RMIApplet) myApplet;
Codice:
Exception in thread "AWT-EventQueue-3" java.lang.ClassCastException: rankVisRMIApplet.RMIApplet cannot be cast to rankVisRMIApplet.RMIApplet Dovrebbe in ogni caso essere java.lang.Applet[/color] cannot be cast to... Visto che l'oggetto che sto cercando di "castare", myApplet, è comunque di tipo Applet. Poi assumendo per assurdo che tra la linea 2 e la linea 3 del mio codice myApplet si sia autonomamente evoluto in un oggetto di tipo rankVisRMIApplet.RMIApplet (quello che lancia il class cast exception), come è possibile che venga lanciata l'eccezione stessa? Si tratterebbe in quel caso di oggetti dello stesso tipo. Come se io avessi problemi a castare un oggetto di tipo String in un oggetto di tipo String o uno di tipo Integer in uno di tipo Integer, non è assurdo?!? Quindi, l'oggetto myApplet chiamato alla seconda riga, secondo voi di che tipo è?!? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:00.



















