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 :

Non mise à jour du Model d'une Jtable


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Non mise à jour du Model d'une Jtable
    Bonjour à tous,

    je développe actuellement une application en java qui dois permettre la gestion d'outils (tournevis ect....).

    J'utilise pour cela une JTable avec un model personnalisé qui hérite de: AbstractTableModel.

    Je souhaiterai que lorsque qu'un utilisateur appuie sur un bouton de mise à jour, l'application recharge la table "outils" en base de données, charge une LinkedList et l'envoie au model personnalisé avec les nouvelles valeurs.

    Mais voila le problème, la table n'affiche pas les nouvelles valeurs mise à jour.

    Voici le code:

    Constructeur du Model:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    /**
             * Constructeur
             * @param uneListe
             */
    	public ModelTable(LinkedList<Class_Outil> uneListe)
    	{	
    		this.setDesOutils(uneListe);
    		this.data = new Object[this.desOutils.size()][19];
    		int i=0;
    		for (Iterator<Class_Outil> localIterator = this.desOutils.iterator(); localIterator.hasNext(); i++) {
    			Class_Outil unOutil = (Class_Outil) localIterator.next();
    			this.data[i][0] = unOutil.getAtelier();
    			this.data[i][1] = unOutil.getSite();
    			this.data[i][2] = unOutil.getAffectation();
    			this.data[i][3] = unOutil.getDesignation();
    			this.data[i][4] = unOutil.getConstructeur();
    			this.data[i][5] = unOutil.getType();
    			this.data[i][6] = unOutil.getNumSerie();
    			this.data[i][7] = unOutil.getIdentification();
    			this.data[i][8] = unOutil.getDebutDeValidite();
    			this.data[i][9] = unOutil.getEtat();
    			this.data[i][10] = Integer.valueOf(unOutil.getPas());
    			this.data[i][11] = unOutil.getFinDeValidite();
    			this.data[i][12] = unOutil.getVerification();
    			this.data[i][13] = unOutil.getCategorie();
    			this.data[i][14] = unOutil.getObservation();
    			this.data[i][15] = new JButton();
    			this.data[i][16] = new JButton();
    			this.data[i][17] = new JButton();
    			this.data[i][18] = new JButton();
    		}		
    	}
    Code du Listener du bouton de mise à jour:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else if(e.getSource() == this.btMAJ)
    		{
    			this.unModel.setDesOutils(this.modelOutil.selectAll());
    			this.uneTable.setModel(this.unModel);
    J'instancie la table et le model lors du clic sur le bouton lister. Je n'ai simplement pas mis le code.

    En parcourant plusieurs forum, certains m'ont conseillés de faire: maTable.setModel(monModel); comme je l'ai fait au dessus, mais ça ne fonctionne pas.

    N’étant pas un expert en java, mais étudiant, mes connaissance arrivent à leurs termes.

    Quelqu’un y verrai une piste de réflexion que je pourrai exploiter?

    En vous remerciant, bonne soirée.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Re-bonjour,

    J'ai plus ou moins trouvé d'où venez le problème sans trouver la solution.

    Quand je fait un new monModel(listeOutils); c'est le constructeur de mon model que j'appelle en premier.
    Et c'est exactement à ce moment que je lui donne en paramètre la listeOutils.

    Donc j'ai beau set la LinkedListe avec les nouvelles valeurs venant de la BDD, jamais mon model va se mettre à jour vu que j'utilise la même instance de mon model.

    Quelqu’un aurait une solution?

    Bien à vous.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    C'est bon j'ai trouvé!!

    j'ai crée une méthode initModel(LinkedList<Class_Outil> uneListe) à laquelle je passe en paramètre ma LinkedList<>(), et j'ai juste à la rappeler quand je clic sur le bouton this.btMAJ avec les nouvelles valeurs de la BDD.

    Bien à vous.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/12/2011, 11h47
  2. Réponses: 7
    Dernier message: 15/01/2007, 18h18
  3. Vue non mise à jour après modification d'une table
    Par cybernet35 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 13h54
  4. Réponses: 3
    Dernier message: 15/11/2005, 18h50
  5. Non réception d'un evènement sur une JTable
    Par Kant dans le forum Composants
    Réponses: 4
    Dernier message: 28/05/2004, 10h38

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