PDA

Visualizza la versione completa : [JAVA] applet init


melbionda
29-08-2005, 11:36
Ho due applet in una stessa pagina, chiamiamole A1 e A2. La pagina contiene il codice:

<applet code=A1.class name=A1 width=50 height=50></applet>
<applet code=A2.class width=50 height=50></applet>

Il mio problema è che dovrei inizializzare la A1 dal codice della A2, con qualcosa del tipo:

getAppletContext().getApplet("A1").init();

in questo modo però l'init viene richiamata 2 volte. Come posso fare in modo che la prima volta non venga richiamata?
Ho provato a rinominare init con init2, e lasciare init vuota.
Ma chiamando

((A1)getAppletContext().getApplet("A1")).init2();

non visualizzo l'applet (pannello grigio).

Idee?

GRazie

Andrea1979
29-08-2005, 13:22
Credo che il semplice fatto che l'applet A2 sia richiamata nel codice html basti per mandare in esecuzione il relativo metodo init.

Forse dovresti un po' rivedere o chiarire cosa devi fare nell'applet A2 :)
Ciao.

melbionda
29-08-2005, 13:34
Per semplificare il tutto...
Metti che in applet A2 ci sia un bottone che quando premuto carica la A1. Anzi, non è che la carica, perche ovviamente viene caricata quando il browser trova <applet code=A1.class...> nell'html. Infatti quando viene caricata in automatico si esegue il codice che c'è in init, ma io init la rinomino init2, e la init la lascio vuota.
Poi in A2, alla pressione del bottone associo A1.init2().
Questo funziona, cioè, se in init e init2 metto un System.out.println con "Sono in init/init2" vedo le 2 stampe correttamente in consolle, ma a video vedo un pannello grigio al posto di A1. Spero di essere stata più chiara.

Andrea1979
29-08-2005, 13:42
ok, posta del codice ed un esempio (link) ad una pagina online.

melbionda
03-09-2005, 12:43
Non posso postare il codice ne mettere un esempio online.
Cmq ho risolto. Nella init creo la parte grafica ma la setto come non visibile e non abilitata. Dalla seconda applet chiamo una funzione della prima che rende il tutto visibile ed abilitato. Così ho aggirato il problema del pannello grigio.

Grazie cmq!

Ale

Loading