|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
[JAVA] new Frame on Click
Devo realizzare una interfaccia grafica in cui, sul Frame principale, alla pressione di un JButton venga aperta una maschera di inserimento dati.
Ho programmato l'evento di apertura di tale JFrame ma rimango con alcuni dubbi: supponiamo che ci siano n bottoni che servono ad aprire n JFrame diversi; tali JFrame devono comunque essere caricati sin dalla creazione del Frame principale e settati come "non visibili" oppure c'è un altro modo? Il problema che mi pongo è: devo caricarli in memoria tutti quanti, e renderli visibili con show(), e visualizzarli a mio piacimento, oppure c'è un modo alternativo, più standard? Sto usando ECLIPSE Grazie... ciao! |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2000
Messaggi: 138
|
Di primo acchito direi:
all'interno del metodo che gestisce l'evento di clik sul button dovrebbe andare una cosa del genere: //crei il frame (qui lo crei e lo carichi e poi non ci pensi piu') JFrame nuovoFrame = new TuoFrame (); //qui inizializzi il nuovo frame nuovoFrame.init(); //init ovviamente e' un tuo metodo di inizializzazione //lo mostri nuovoFrame.show(); //recuperi i dati dalla maschera nuovoFrame.salvaDati(); //ovviamente un metodo che ti memorizza i dati della maschera. ciao,
__________________
fgmac |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
OK, grazie,
in effetti è quello che ho provato a fare la prima volta. Ma una volta che ho finito di usare tale frame, diciamo quando lo chiudo x esempio... che cosa succede? lo nascondo (HIDE on close?) ?? così rimarrebbe cmq in memoria, ma non visibile... Che politica si usa in questi casi? Se ho 10 frame, e li apro tutti e 10, che succede poi quando li chiudo? mi rimangono nascosti 10 frame e quando li voglio riutilizzare li mostro semplicemente???? Nel caso siano delle maschere di inserimento dovrei preoccuparmi di azzerare tutti i campi (di testo) ad ogni nuovo show del frame.. altrimenti vedrei quelli vecchi, giusto? |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Apr 2005
Messaggi: 224
|
Si, ovviamente se usi la politica di mostrarli e nasconderli dovrai richiamare un metodo per azzerare i campi dopo averli nascosti o prima di rivisualizzarli.
Se invece crei e chiudi non è necessario, per chiuderli puoi usare il metodo dispose() che rilascia le risorse grafiche utilizzate. Ovviemente se pensi che questi oggetti grafici vengano utilizzati più volte conviene mostrarli e nasconderli, di contro la memoria allocata sarà sempre massima perchè carichi cmq tutte le finestre (nascoste inizialmente) anche se non verranno mai utilizzate. ciao! |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2000
Messaggi: 138
|
Beh non e' per forza necessario caricare tutte le form all'avvio del programma.
Ti definisci in modo globale l'elenco delle form che ti servono: JFrame f1 = null; JFrame f2 = null; JFrame f3 = null; .... Quando dovresti mostrare una form fai il test if (f1 == null) { f1 = new TuaForm(); } il resto rimane invariato La prima volta viene caricata in memoria la form, poi viene solo richiamata. Ti conviene fare un'analisi accurata dell'utilizzo di queste form, per quelle di + frequente utilizzo forse conviene usare questa metodologia. ciao
__________________
fgmac |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:44.




















