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 :

Erreur édition cellule JTable (copie ligne)


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 69
    Par défaut Erreur édition cellule JTable (copie ligne)
    Bonjour à tous,
    je rencontre un problème avec une JTable.
    Lorsque je copie une ligne et que je souhaite modifier une cellule, ce sont les 2 valeurs des 2 lignes qui sont modifiées.
    On pourrai croire que ma copie ne créer pas de nouveau objet et que j'utilise le même mais lorsque je modifie ma valeur hors de la JTable, cela modifie la bonne valeur et non les 2.

    Je poste des bouts de code:
    La copie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void CopierVoie(VoieMesure voie)
    	{
    		VoieMesure voieTempo = new VoieMesure(voie.getNom()+"_copie");
    		for (Element element : voie.getElementVoie())
    		{
    			Element elementTempo;
    			elementTempo = element.copie(element);	// copie de l'element
    			voieTempo.addElement(elementTempo);
    		}
    			}
    la méthode copie()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Element copie(Element aCopier)
    		{
    			Element copie = new Element();
    			copie.setDonnees(aCopier.donnees);
    			return copie;
    		}
    Le problème vient peut être de mes getValue / setValue dans ma tableModel mais je ne vois pas où...

    [EDIT] le problème ne vient pas des getValue et setValue mais plutôt des références, je ne m'y connais pas trop mais il doit y avoir une histoire de références qui pointent sur le même objet tant qu'on ne l'utilise pas ou je sais trop quoi

  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
    Donne nous le code entier de ton modèle.

    celà vient surtout du fait qu'il faut que le modèle indique à la JTable que les données ont changé via un appel à la méthode fireTableCellUpdated dans ton setValueAt.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 46
    Par défaut
    Lorsque tu effectues un "setDonneesA(donneesB)" , selon le type de "donnees" (pas si c'est un type simple, du genre int, float, String ... il me semble), tu vas en fait faire pointer le champ DonneesA sur donneesB. Donc t'es 2 objets seront en fait les mêmes (même adresse). Pour le vérifier, tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("Adresse DonneesA la même que Adresse DonneesB ? : " + DonneesA == DonneesB);
    Tu verras, normalement, ça donnera true.

    Renseignes toi sur la fonction ".clone()", elle permet de faire ce que tu veux, si j'ai bien compris (ça vaut ce que ça vaut )

    Tiens nous au courant

  4. #4
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 69
    Par défaut
    Effectivement, lors de mon implémentation de la fonction clone() je n'utilisais pas mon Objet créer


    Enfin maintenant le problème est réglé, je vous remercie !

    PS : et oui je ne rafraichissait pas non plus dans la méthode setValue()

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

Discussions similaires

  1. Validation/fin édition cellule JTable
    Par JannyBoop dans le forum Débuter
    Réponses: 2
    Dernier message: 16/11/2009, 03h46
  2. Réponses: 0
    Dernier message: 17/02/2009, 16h13
  3. [VBA-E] erreur de code sur copie de cellules
    Par dado91400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/03/2007, 23h12
  4. [VBA-E]Erreur lors d'une copie de cellules
    Par illight dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/02/2006, 11h22
  5. [JTable] Cellules sur plusieurs lignes
    Par otsgd dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 20/04/2005, 15h25

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