Come immagazzino un oggetto in modo che possa usarlo anche in una seconda esecuzione del programma?

2

Sto facendo un programma in Java in cui sto creando Dialog box , button , checkbox , ecc. Widget SWT.

Ora il mio problema è, voglio che se in una esecuzione% sia fatto% co_de e nella seconda esecuzione button sia fatto allora entrambi dovrebbero apparire in una scatola. Quindi ho bisogno di archiviare quell'oggetto scatola.

Come posso farlo?

    
posta user73444 23.11.2012 - 12:45
fonte

2 risposte

5

In generale, ci sono due modi per fare ciò che ti serve:

  • Memorizza lo stato dell'oggetto e
  • Memorizza la sequenza di comandi che portano l'oggetto al suo stato corrente

Il primo modo è indirizzato da externalization dello stato di un oggetto. In sostanza, si scrive su una memoria esterna di qualche tipo un file con una descrizione dello stato corrente dell'oggetto:

Label at 40,10 text "Are you sure?"
Button at 40,20 size 30,10 text "OK"
Button at 40,40 size 30,10 text "Cancel"

Puoi leggere questo file e ripristinare l'oggetto allo stato corrente.

Il secondo modo è risolto memorizzando i comandi, come questo:

Add Label id 123 at 0,0
Move id 123 to 40,15
Set text id 123 "Are you crazy?"
Move id 123 to 40,10
Add Button id 124 at 0,0
Set text id 124 "Cancel"
Move id 124 to 40,40
Add Button id 125 at 0,0
Set text id 125 "OK"
Move id 125 to 40,20
Set text id 123 "Are you sure?"

Quando hai un file del genere, puoi "riprodurlo" per ottenere lo stato attuale del tuo oggetto. Ma ancora più importante, puoi usarlo per implementare "annulla" che sopravvive uscendo dall'applicazione. Se aggiungi timestamp agli eventi, otterrai anche un modo per ripristinare lo stato in un dato momento nel passato.

    
risposta data 23.11.2012 - 13:21
fonte
1

Fondamentalmente devi farlo da solo. Ci sono molti modi per "persistere" dei dati e sei libero di usarne uno. Devi scegliere dove verranno memorizzati i dati per primi:

  • Sul computer locale
  • Su un server sulla rete locale
  • Su un server da qualche parte su Internet?

... e devi decidere quale formato:

Se scegli un Database, ci sono vari framework come Hibernate che possono aiutarti.

Quindi, quando l'applicazione si chiude, devi agganciare quell'evento ed eseguire un codice che accetta lo stato del programma che desideri archiviare e in qualche modo lo porta nella memoria permanente. Quindi all'avvio dell'applicazione, devi aprire quella memoria, caricare i dati e ricostruire la GUI nel modo desiderato.

    
risposta data 23.11.2012 - 13:02
fonte

Leggi altre domande sui tag