|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2001
Città: Salerno
Messaggi: 649
|
[JAVA] chiarimento su DISPOSE_ON_CLOSE
Salve,
sto lavorando su una semplice JApplet con qualche JDialog. Volevo capire per bene cosa comporta questa linea di codice all'interno di una JDialog: setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); Teoricamente nel momento in cui si clicca sulla 'X' la JDialog dovrebbe essere distrutta insieme a tutti i componenti in essa contenuta. Nel mio caso ho un'altra classe che chiamo Logica, che gestisce la logica e fa riferimento alla JDialog per esporre eventuali errori. Mi sono accorto che in realtà anche dopo il dispose della JDialog, l'istanza della classe Logica si riferisce sempre all'istanza della JDialog creata in precedenza. Infatti il controllo del seguente metodo contenuto in Logica fallisce, quindi vuol dire che jdialog esiste ancora... ma non doveva essere distrutto quando ho chiuso la la JDialog? public void setJDialogAdmin(JDialogAdminRegistra jdialog) { if (this.jdialog == null) this.jdialog = jdialog; } Spero di essere stato chiaro... ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#2 | ||
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Se da qualche parte hai un reference a quella JDialog .... beh, l'oggetto è ancora in vita! Quote:
dispose() rilascia solamente quelle risorse "native" (memoria, handle, ecc...) necessarie per il rendering sullo schermo.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2001
Città: Salerno
Messaggi: 649
|
ti ringrazio molto. Ho pensato che fosse come hai detto, ma cercavo una conferma
![]() Comunque ho risolto usando il pattern singleton, così evito di creare sempre una nuova istanza ![]()
__________________
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:33.