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 :

[JTable] Complétement changer tout le contenu


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Par défaut [JTable] Complétement changer tout le contenu
    Salut,

    j'ai besoin d'un petit coup de main, j'ai dans mon interface une JTable que je créé dès le début mais vide (de taille 10x10), l'utilisateur doit à ce moment choisir une table et une base de donnée que j'accède par JDBC.

    Pour le moment pas de problème, je récupére les données de la table (nom des colonnes, et data).

    Problème : ce programme doit être générique, et je doit donc à tout moment pouvoir afficher les données (en gros un browser sql en java, mais en plus simple).

    Dans une méthode, je récupère les noms des colonnes dans un vecteur vect, et les données dans un vecteur de vecteur data.

    Je sais que le constructeur de JTable est fait pour prendre ces deux vecteurs, mais ma table ne se met pas à jour.

    Je pense que je fait de faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bddTable = new JTable(vect, data);
    n'es pas terrible vu que la table existe déjà.

    Comment résoudre ce problème ? faut-il que j'efface les colonnes (vides) puis tout redessiner un à un ?

    Merci pour tout.

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Utilise un TableModel , c'est fait pour !


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre éclairé Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Par défaut
    Voici ce que j'avais essayé mais sans succès (c'est d'ailleurs pour çà que j'en ai pas parlé avant) :

    Méthode X permettant de créer l'interface :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    			tableModel = new DefaultTableModel();
    			bddTable = new JTable(tableModel);
    			scrollPaneTable = new JScrollPane(bddTable);
    			pane.add(scrollPaneTable, BorderLayout.CENTER);
    Méthode Y qui récupère les données et qui devrait 'modifier' la JTable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    			tableModel = new DefaultTableModel(data, vect);
    			tableModel.fireTableDataChanged();
    J'imagine que je m'y prend mal.

  4. #4
    Membre éclairé Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Par défaut
    Bon ba, au cas ou çà pourrais aider qqun, il faut remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableModel = new DefaultTableModel(data, vect);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableModel.setDataVector(data, vect);

  5. #5
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bddTable.fireTableDataChanged();


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #6
    Membre éclairé Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Par défaut
    euh, bizarement j'ai bien lu quelque part qu'il fallait utiliser fireTableDataChanged, mais cette méthode n'existe pas dans JTable (en tout cas c'est ce que me dit Eclipse).

    Je l'ai pour le DefaultTableModel, et pour ma part, çà fait bien ce que je veux.


    Merci tout de même.

  7. #7
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Exact, une autre manière de procéder est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maTable.setModel(monModel);


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

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

Discussions similaires

  1. Changer tout un JTable
    Par TangoZoulou dans le forum Composants
    Réponses: 1
    Dernier message: 06/12/2008, 19h53
  2. [Swing][Applet] Changer tout le contenu et rafraichir
    Par Jack_serious dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 07/05/2007, 15h50
  3. [SWING][JTable]Changer toutes les donnees
    Par yciabaud dans le forum Composants
    Réponses: 1
    Dernier message: 05/08/2006, 21h28
  4. COmment imprimer tout le contenu de la JTable
    Par L4BiN dans le forum Composants
    Réponses: 1
    Dernier message: 04/08/2006, 11h20
  5. Réponses: 7
    Dernier message: 28/06/2005, 12h53

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