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

    Serializzare un DefalutListModel...Possibile?

    Ciao.

    Dispongo di una Jlist a cui ho associato un DefaultListModel per poter inserire oggetti (di tipo articolo).

    codice:
    private DefaultListModel JlistModel = new DefaultListModel();
    private JList jlistProdotti = new JList(JlistModel);


    Dovrei salvare questa lista di oggetti ,

    Attualmente mi sono creato una TreeSet (che chiamo DepositoPrincipale) dove aggiungo questi oggetti che contemporaneamente vengono aggiunti al DefaultListModel...

    codice:
    DepositoPrincipale.aggiungi(articolo);
    JlistModel.addElement(articolo);


    Ora ; Anzichè serializzare la TreeSet per il salvataggio , potrei serializzare il DefaultListModel senza quindi utilizzare la collezione per salvare i dati?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Ora ; Anzichè serializzare la TreeSet per il salvataggio , potrei serializzare il DefaultListModel senza quindi utilizzare la collezione per salvare i dati?
    DefaultListModel di per sé è già Serializable, quindi tecnicamente non ci sarebbero particolari problemi (è ovvio che anche i tuoi oggetti devono essere serializzabili).

    Io però, personalmente, non serializzerei il DefaultListModel (troppo specifico secondo me) ma solo i dati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Quote Originariamente inviata da andbin Visualizza il messaggio

    Io però, personalmente, non serializzerei il DefaultListModel (troppo specifico secondo me) ma solo i dati.
    Intendi gli oggetti Articolo ?

    Li metto in una TreeSet , serve serializzare anche quella?

    Non sono ancora molto pratico con la serializzazione.

    Poi mi devi spiegare come si salvano i dati su disco e come recuperarli in seguito ; se non ricordo male devo utilizzare gli Stream?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Intendi gli oggetti Articolo ?

    Li metto in una TreeSet , serve serializzare anche quella?
    Sì, TreeSet è serializzabile (come tutte le collezioni) e potrebbe anche andare bene se serializzi questo. Occhio solo ad un piccolo dettaglio: se hai creato il TreeSet con un Comparator per avere un ordine specifico (indipendentemente dal fatto che Articolo sia Comparable o no), anche il comparator deve essere serializzabile, perché viene scritto anche quello.

    Rileggendo però il tuo post iniziale mi viene un dubbio, dici che fai:
    codice:
    DepositoPrincipale.aggiungi(articolo);
    JlistModel.addElement(articolo);
    Ma se fai così, nel list model gli articoli sono nella sequenza di inserimento, mentre nel TreeSet sono ordinati per "contenuto" (Comparable o Comparator che sia). È quello che vuoi?

    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Poi mi devi spiegare come si salvano i dati su disco e come recuperarli in seguito ; se non ricordo male devo utilizzare gli Stream?
    Per scrivere: ObjectOutputStream che incapsula un FileOutputStream. Per leggere: le corrispettive classi *InputStream.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Quote Originariamente inviata da andbin Visualizza il messaggio

    Rileggendo però il tuo post iniziale mi viene un dubbio, dici che fai:
    codice:
    DepositoPrincipale.aggiungi(articolo);
    JlistModel.addElement(articolo);
    Ma se fai così, nel list model gli articoli sono nella sequenza di inserimento, mentre nel TreeSet sono ordinati per "contenuto" (Comparable o Comparator che sia). È quello che vuoi?
    No. Vorrei anche che nel model gli elementi siano ordinati.

    Ti spiego in sintesi (Senza i dettagli) quello che dovrebbe fare il mio programma (Un gestore di un deposito merci) :

    Ho una serie di Articoli da gestire ; Tra le tante opzioni (Modifica , Rimozione) gli articoli possono essere aggiunti nel "deposito" in questo caso si visualizzano nella Jlist di cui ti ho parlato . Inoltre una volta aggiunti nel deposito , possono essere "inviati" in un'area destinata alle vendite e alle spedizioni . Gli articoli contenuti in quest'area sono visualizzati in un'altra Jlist . In più si possono visualizzare i dettagli di ogni articolo su una JTextArea selezionando da tre JComboBox Tipologia Marca e Modello e poi cliccando su un bottone VisualizzaCaratteristiche ; in pratica una specie di ricerca.

    Il fatto di gestire il contenuto di queste Jlist e dei JComboBox mi pone il dubbio di cosa serializzare per salvare i dati.

    Pensi che utilizzare una collezione per "archiviare" gli articoli vada bene?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    No. Vorrei anche che nel model gli elementi siano ordinati.
    Allora:
    - se il list model, una volta creato, non deve subire alterazioni (aggiunte, eliminazioni), allora parti con un List, lo ordini e poi lo usi per popolare un DefaultListModel.
    - se il list model deve poter gestire inserimenti in qualunque momento e l'elenco deve restare ordinato, allora conviene implementare un proprio ListModel basandosi su un List facendo in modo però che la lista sia mantenuta ordinata.

    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Il fatto di gestire il contenuto di queste Jlist e dei JComboBox mi pone il dubbio di cosa serializzare per salvare i dati.

    Pensi che utilizzare una collezione per "archiviare" gli articoli vada bene?
    Credo che possa bastarti (de)serializzare un List.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Quote Originariamente inviata da andbin Visualizza il messaggio

    Credo che possa bastarti (de)serializzare un List.
    Deserializzare ? Cioè?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Deserializzare ? Cioè?
    L'opposto di "serializzare".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Quote Originariamente inviata da andbin Visualizza il messaggio
    L'opposto di "serializzare".
    Non capisco.

    Devo deserializzare un List per poter salvare i dati? Mi suona un pò controverso

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Devo deserializzare un List per poter salvare i dati? Mi suona un pò controverso
    Se scrivi su file degli oggetti "serializzati" ..... ad un certo punto, da qualche parte, dovrai pur rileggerli (="deserializzarli"), no? Altrimenti a chi/cosa serve?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.