Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339

    Riferimento JFrame ancora "attivo"

    Ciao a tutti.

    Ho scritto del codice per evitare di aprire due finestre uguali.

    In pratica controllo se il riferimento della finestra sia null o meno.

    codice:
    if(FrameAggiungiArticolo.faa == null)	
    FrameAggiungiArticolo.faa = new FrameAggiungiArticolo();
    Il riferimento l'ho istanziato nella classe

    codice:
    public class FrameAggiungiArticolo extends JFrame {
    	
    	public static FrameAggiungiArticolo faa;
    	
    
            //ALTRO CODICE
    
    }
    Non capisco perchè quando chiudo la finestra (col metodo dispose()) , il riferimento rimane "attivo" invece che tornare a null.

    Infatti se premo di nuovo il bottone per aprire la finestra , questa non si apre

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Il semplice chiudere la finestra non significa che il suo riferimento diventi null: non stai distruggendo l'oggetto, hai solo agito su una sua property (l'essere visibile o meno).

    Vedendo le domande che hai posto nelle ultime settimane ti consiglierei di fermarti un attimo con Swing e di riguardarti bene le basi di Java altrimenti ti blocchi (come stai facendo) ad ogni banalità.
    my 2 cents
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Già hai ragione...

    Cmq ho appena risolto..

    Quando chiudo a finestra imposto il riferimento a null di nuovo ed il gioco è fatto

    P.S. : se il riferimento rimane attivo anche se chiudo la finestra ; allora se apro centinaia di volte delle finestre e poi le chiudo mi restano attivi centinaia di riferimenti..... Non ti sembra un pò poco performante?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    P.S. : se il riferimento rimane attivo anche se chiudo la finestra ; allora se apro centinaia di volte delle finestre e poi le chiudo mi restano attivi centinaia di riferimenti..... Non ti sembra un pò poco performante?

    E perchè sarebbe "poco performante"? La stai guardando dal lato sbagliato.
    La visibilità o meno di una finestra non ha nulla a che vedere con la sua occupazione di memoria.
    Se nel mio programma ho bisogno di aprire e chiudere più volte una stessa finestra è molto più performante istanziarla una sola volta e modificarne la proprietà "visibile", piuttosto che crearla nuova ogni volta che devo visualizzarla (con tutto l'overhead che ne consegue) e deallocarla dalla memoria ogni volta che la "nascondo".

    Se un programma apre centinaia di finestre e le chiude senza renderle disponibili per il grarbage collector, allora il problema è del programma (e del programmatore che l'ha scritto male), non del comportamento della classe (che è volto proprio a migliorare la performance).


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Ok.

    Volevo chiederti... non mi risponde nessuno alla discussione

    Accesso a campi di un TreeSet

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.