Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA APPLET] evento alla chiusura del browser

    come è possibile lanciare un evento alla chiusura del browser (o della scheda) in cui è in esecuzione un'applet?
    esiste un listener specifico?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA APPLET] evento alla chiusura del browser

    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?
    I 4 metodi di una applet inerenti al suo "ciclo di vita" sono init(), start(), stop(), destroy().
    Prova ad indovinare quali vengono invocati quando si chiude la pagina che contiene la applet.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    non mi funziona ne stop, ne destroy

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mauis
    non mi funziona ne stop, ne destroy
    E cosa hai fatto di preciso? Non posso saperlo ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    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();
    
            }

  6. #6
    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?

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mauis
    codice:
            try {
                alServer.close();
                dalServer.close();
                connessione.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
    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.

    Originariamente inviato da mauis
    a questo punto devo capire se il metodo adoperato per la chiusura della socket è corretto... idee?
    destroy() lo dice il nome indica che la applet sta per essere distrutta, quindi lì è appropriato rilasciare risorse o chiudere quello che è stato aperto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    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.
    uhmm grazie mille non ci avevo pensato, iposto come mi suggerisci!

    per il destroy, intendi dire che è preferibile non richiamare un'altro metodo per la chiusura della socket ma effettuarla proprio al suo interno?

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    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?
    No, non è questo il punto/problema. Non conta se invochi qualcosa direttamente o indirettamente.
    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.