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] Actualiser un tableau


Sujet :

Composants Java

  1. #1
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut [jTable] Actualiser un tableau
    Bonjour a tous,

    J'ai actuellement un JTable contenant les data d'une base de données.
    J'aimerais pouvoir rafraichir soit la fenetre, soit le contenu du tableau.
    J'ai essayer plusieurs méthodes, repaint(), validate(), revalidate().
    Mais sans résultats :s
    Quelqu'un aurait il une solution svp?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Tu es obligé de passer par un tableModel pour le faire, je te conseille de faire un AbstractTableModel

  3. #3
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    euh pourrais tu etre un peu plus précis stp? merci

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Il te faut créer un modele que tu liera à ta JTable, j'ai eu le meme problème y a pas longtemps

    je te donne le code 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    package src;
     
    import javax.swing.table.AbstractTableModel;
     
    public class MyModel extends AbstractTableModel{
    	private static final long serialVersionUID = 8083956857937064934L;
     
    	private String[] columnHeader = null;
        private Object[][] rows = new Object[0][0];
     
    	public Object getValueAt(int arg0, int arg1) {
     
    		return rows[arg0][arg1];
    	}
     
    	public void setHeader(String[] newHeaders){
    		columnHeader = newHeaders;
    	}
     
        public int getColumnCount() { 
            return this.columnHeader.length;
        } 
     
        public String getColumnName(int column) { 
            return this.columnHeader[column]; 
        } 
     
        public int getRowCount() { 
            return this.rows.length;
        } 
     
        public boolean isCellEditable(int row, int column) { 
            // Aucune cellule éditable 
            return false; 
        }  
     
        //Fonction qui va s'occupper de remettre à jour tout mon tableau et qui va mettre 
        //à jour aussi l'affichage
        public void setData(Object[][] newData){
        	rows = newData;
        	super.fireTableDataChanged();
        }
    }
    quand tu veut changer les données tu emploies la méthode setData

  5. #5
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    le probleme c'est que j'ai deja un model :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        CustomEditableCellTableModel model = new CustomEditableCellTableModel(
           colonneR, 0);
    Voici le code de customEditableCellTableModel :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    class CustomEditableCellTableModel
        extends DefaultTableModel {
      private ArrayList listCellNotEditable;
     
      public CustomEditableCellTableModel() {
        super();
        this.listCellNotEditable = new ArrayList();
      }
     
      public CustomEditableCellTableModel(int numRows, int numColumns) {
        super(numRows, numColumns);
        this.listCellNotEditable = new ArrayList();
      }
     
      public CustomEditableCellTableModel(Vector columnNames, int numRows) {
        super(columnNames, numRows);
        this.listCellNotEditable = new ArrayList();
      }
     
      public CustomEditableCellTableModel(Object[] columnNames, int numRows) {
        super(columnNames, numRows);
        this.listCellNotEditable = new ArrayList();
      }
     
      public CustomEditableCellTableModel(Vector data, Vector columnNames) {
        super(data, columnNames);
        this.listCellNotEditable = new ArrayList();
      }
     
      public CustomEditableCellTableModel(Object[][] data, Object[] columnNames) {
        super(data, columnNames);
        this.listCellNotEditable = new ArrayList();
      }
     
      public void addNotEditableCell(int row, int column) {
        if (! (column >= 0 && column < this.getColumnCount())) {
          return;
        }
        if (! ( (row >= 0) && (row < this.getRowCount()))) {
          return;
        }
        this.listCellNotEditable.add(new Point(row, column));
      }
     
      public void removeNotEditableCell(int row, int column) {
        int index = this.listCellNotEditable.indexOf(new Point(row, column));
        if (index != -1) {
          this.listCellNotEditable.remove(index);
        }
      }
     
     
     
      // surcharge de la methode afin de revoyer false a toutes les cellules
      // marque comme non editable
      public boolean isCellEditable(int row, int column) {
        return (false);
     
      }
    }
    Comment pourrais je faire dans mon cas?

  6. #6
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    lorsque j'utilise ton model, il ne trouve plus les méthodes addrow.

    J'ai essayer de les inclure dans le model mais ca ne marche pas :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     model.addRow(new Object[] {rset.getString(colonne[1]),
                               rset.getString(colonne[2])});

  7. #7
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Je passe par la méthode setData(Object[][]), donc en fait je change toutes les données en meme temps

    Si tu veut travailler avec addRow, il faut travailler avec des ArrayList je pense

  8. #8
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    je n'y arrive pas :s j'aimerai juste pouvoir rafraichir la page ou le tableau
    je bloque :'(

Discussions similaires

  1. Réponses: 13
    Dernier message: 30/03/2009, 15h53
  2. [E-07] Actualisation automatique tableau croisé dynamique.
    Par Tibou(c) dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/03/2009, 14h24
  3. ArrayList et JTable : obtenir un tableau viable
    Par Cygrid dans le forum Composants
    Réponses: 4
    Dernier message: 04/03/2009, 13h38
  4. [JTable] Actualiser apres requete sql
    Par guitariste dans le forum Composants
    Réponses: 11
    Dernier message: 28/01/2009, 15h44
  5. [JTable] Trier le tableau à la création
    Par yelbied dans le forum Composants
    Réponses: 3
    Dernier message: 30/01/2008, 09h45

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