Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459

    [JAVA] Ciclo di vita applet

    Ciao a tutti!

    Il dubbio mi è sorto rispondendo alla domanda di un mio amico sul ciclo di vita delle applet. Per quanto ne so (studiando dalla documentazione e da vari libri) i metodi vengono chiamati come segue:

    init : al caricamento dell'applet

    start : dopo init e ogni volta che l'applet entra nel campo visivo del browser

    stop : prima di destroy e ogni volta che l'applet esce dal campo visivo del browser (scrollo la pagina finchè l'applet scompare, riduco il browser a icona, ecc...)

    destroy : quando l'applet viene definitivamente scaricata


    Per dimostrarlo ho scritto il seguente codice :

    codice:
    import java.applet.*;
    import javax.swing.*;
    
    public class JHello extends JApplet
    {       
    	public void init()
    	{
                getContentPane().add(new JLabel("Hello!"));
                System.out.println("Init called");                 
    	}
    
    	public void start()
    	{
                System.out.println("Start called");            
    	}
    
    	public void stop()
    	{
                System.out.println("Stop called");                                
    	}
    
    	public void destroy()
    	{
                System.out.println("Destroy called");
            }
    }

    che dovrebbe stampare sulla console di Java la varie fasi del ciclo di vita. Con appletviewer funziona tutto come previsto, ma sui browser no !

    Viene chiamato init(), start() e basta, nessuna traccia nè di stop nè di start, sia riducendo a icona che scrollando, fino a che non distruggo l'applet, dove vengono effettivamente chiamati stop() e destroy(),

    Ho provato su diversi browser (IE, Mozilla, Konqueror, ecc...), sempre stesso risultato.


    Che dipenda dall'html (in cui metto solo <applet code ="NomeClasse">...</applet> ) ?

    Potreste provare anche voi?

    Grazie
    Linux user number 403381

    Stop TCPA!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    io ho provato su mozilla (con Windows XP Pro), il mio codice html è semplicemente

    codice:
    <html>
    <body>
    <applet code="JHello.class" width=300 height=300></applet>
    </body>
    </html>
    ed ho ottenuto

    Init called
    Start called
    Stop called
    Destroy called


    non ho provato su Internet Explorer perchè non uso la JVM con IE
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Ok, ma quando riduci il browser ad icona e poi lo ripristini ottieni
    Stop called
    Start called ?

    Dovrebbe essere il comportamento standard di un applet !
    Linux user number 403381

    Stop TCPA!

  4. #4
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    :quote: up
    Linux user number 403381

    Stop TCPA!

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    no, stop e destroy mi compaiono solo alla chiusura del browser..- stop non mi compare quando minimizzo il browser o la finestra del browser perde il focus.
    Ciao
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Nessun'altra idea?
    Linux user number 403381

    Stop TCPA!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Direttamente dalla documentazione.
    per il metodo start():
    public void start()

    Called by the browser or applet viewer to inform this applet that it should start its execution. It is called after the init method and each time the applet is revisited in a Web page.
    e per il metodo stop():
    public void stop()

    Called by the browser or applet viewer to inform this applet that it should stop its execution. It is called when the Web page that contains this applet has been replaced by another page, and also just before the applet is to be destroyed.
    Non dice che questi metodi vengono chiamati quando l'applet perde o riacquista visibilità, ma quando la pagina del browser viene modificata: start() viene chiamato ogni volta che si ritorna nella pagina dell'applet, stop() quando si passa dalla pagina dell'applet ad un'altra pagina.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Si, l'avevo letto anch'io, però utilizzando Appletviewer il funzionamento è quello che ho descritto sopra...
    Linux user number 403381

    Stop TCPA!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.