come è possibile lanciare un evento alla chiusura del browser (o della scheda) in cui è in esecuzione un'applet?
esiste un listener specifico?
come è possibile lanciare un evento alla chiusura del browser (o della scheda) in cui è in esecuzione un'applet?
esiste un listener specifico?
I 4 metodi di una applet inerenti al suo "ciclo di vita" sono init(), start(), stop(), destroy().Originariamente inviato da mauis
come è possibile lanciare un evento alla chiusura del browser (o della scheda) in cui è in esecuzione un'applet?
esiste un listener specifico?
Prova ad indovinare quali vengono invocati quando si chiude la pagina che contiene la applet.![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
E cosa hai fatto di preciso? Non posso saperlo ....Originariamente inviato da mauis
non mi funziona ne stop, ne destroy![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ti metto un po di codice... alla chiusura dell'applet devo chiudere una socket:
codice:... public void destroy() { CloseXMLSocket(); } ... protected void CloseXMLSocket() { try { alServer.close(); dalServer.close(); connessione.close(); } catch (Exception e) { e.printStackTrace(); }
mi auto-rispondo avendo fatto un debug migliroe...
il destroy viene correttamente invocato, è quindi la procedura successiva che non funziona a dovere... a questo punto devo capire se il metodo adoperato per la chiusura della socket è corretto... idee?
Tra l'altro fare banalmente più close in sequenza non è il massimo, anche se dentro un try/catch. Perché se una lancia una eccezione le altre close NON vengono fatte!Originariamente inviato da mauis
codice:try { alServer.close(); dalServer.close(); connessione.close(); } catch (Exception e) { e.printStackTrace(); }
Sarebbe più appropriato fare: o try/catch separati per ognuna delle close oppure con un solo try/catch sfruttare all'interno più try/finally. Quello che vuoi, purché ci si assicuri che tutte vengano effettuate.
destroy() lo dice il nome indica che la applet sta per essere distrutta, quindi lì è appropriato rilasciare risorse o chiudere quello che è stato aperto.Originariamente inviato da mauis
a questo punto devo capire se il metodo adoperato per la chiusura della socket è corretto... idee?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
uhmm grazie mille non ci avevo pensato, iposto come mi suggerisci!Originariamente inviato da andbin
Tra l'altro fare banalmente più close in sequenza non è il massimo, anche se dentro un try/catch. Perché se una lancia una eccezione le altre close NON vengono fatte!
Sarebbe più appropriato fare: o try/catch separati per ognuna delle close oppure con un solo try/catch sfruttare all'interno più try/finally. Quello che vuoi, purché ci si assicuri che tutte vengano effettuate.
destroy() lo dice il nome indica che la applet sta per essere distrutta, quindi lì è appropriato rilasciare risorse o chiudere quello che è stato aperto.
per il destroy, intendi dire che è preferibile non richiamare un'altro metodo per la chiusura della socket ma effettuarla proprio al suo interno?
No, non è questo il punto/problema. Non conta se invochi qualcosa direttamente o indirettamente.Originariamente inviato da mauis
per il destroy, intendi dire che è preferibile non richiamare un'altro metodo per la chiusura della socket ma effettuarla proprio al suo interno?
destroy() è solo il "contesto" in cui la applet può fare "qualcosa" prima che la applet venga distrutta. Ma cosa fare esattamente sei libero di stabilirlo tu in base a cosa gestisci.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet