IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Pb sérialisation JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut Pb sérialisation JTable
    Bonjour et meilleurs voeux à tous,

    Mon projet affiche une JTable qui va chercher ses données dans une classe listeDonnees.

    Tout fonctionne parfaitement: l'insertion, la suppression des lignes, le raffraichissement d'affichage lorsque des éléments de la table sont modifiés...

    listeDonnees contient des ArrayList. Lorsque je remplis ceux-ci à l'aide d'un fichier par le mécanisme de sérialisation, la JTable ne fonctionne plus... pourtant les données chargées sont bien dans les ArrayList.
    Pire: getValue() n'est plus appelée lorsque la JTable doit être affichée. On dirait que cette dernière s'est détachée de sa classe listeDonnees.

    J'ai trouvé quelques posts sur Internet à ce sujet (preuve que je ne suis pas le seul au monde à avoir ce problème ), mais pas de solution clairement affichée.

    Quel est le code magique qui va permettre de retrouver un fonctionnement correcte ?

    @ bientôt...

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Utilises tu un modèle pour ta JTable? As tu déjà utilisé les méthodes fireXXX de celui ci?

    Par ce que sinon il va falloir te mettre dare dare au boulot.

  3. #3
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Ok, Ok, Sinok, j'me mets au boulot...

    Concrètement la classe listeDonnees étend AbstractTableModel...est-ce que cela fait office de modèle pour la JTable ?
    Pour l'autre question: oui, j'ai effectué un fireTableDataChange.
    Mais je constate lorsque je débogue, que le programme ne passe plus par la méhode surchargée getValueAt(). J'ai l'impression que la JTable est détachée de son AbstractTableModel, elle n'est plus raffraichie !

    Je n'y comprends plus rien

    @ bientôt...

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Est-ce listeDonnees qui est désérialisé/désérialisé. Dans ces cas là ton problème est logique et s'explique par le mécanisme de références standard de java. En effet là JTable possède une référence sur le table model. Or faire une affectation dans une autre partie du code ne changera pas là référence. de fait après avoir deserialisé ton modèle tu peux directement faire un setModel sur là jtable pour mettre à jour là reference.

  5. #5
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Bonjour,

    merci pour cette info.
    Si je comprends bien le mécanisme:
    * Une JTable va chercher ses données vers une classe située à un emplacement mémoire,
    * Je désérialise un fichier dans cette classe -> JAVA affecte dynamiquement un autre emplacement mémoire pour la classe des données.
    * La JTable "n'étant pas au courant" du déplacement de l'objet en mémoire, elle perd le contact
    * En lui redonnant la classe de gestion de données en mémoire, elle se "recale" sur les données qu'elle doit afficher.

    Est-ce que j'ai bon là ?

    @ bientôt ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sérialisation JTable DefaultTableModel
    Par superstarz dans le forum Composants
    Réponses: 4
    Dernier message: 21/01/2013, 03h09
  2. [JTable] Sérialisation, Listener et ListSelectionModel
    Par superstarz dans le forum Composants
    Réponses: 0
    Dernier message: 17/01/2013, 18h12
  3. Sérialisation JTable / RMI
    Par anjoelus dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 19/08/2011, 16h15
  4. [JTable] Problème de sérialisation
    Par waybee dans le forum Composants
    Réponses: 3
    Dernier message: 16/05/2008, 14h30
  5. Réponses: 9
    Dernier message: 12/08/2002, 07h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo