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 :

Evenements modification JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 48
    Par défaut Evenements modification JTable
    Bonsoir,

    J'aimerai savoir quelles cellules d'une jTable on ete modifiées par l'utilisateur, afin de repercuter les information dans ma base de donnée.
    Merci.
    [ Modéré par vedaer ]
    -> Ajout du tag dans le titre
    [ Merci de respecter les Règles du Forum ]

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Par défaut
    La seule facon, cest d'étudier le TableModel, qui sert de modèle à ta JTable. Lorsqu'une cellule est modifiée, la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setValueAt( int row, int col, Object value)
    est appelée.

    Donc tas qu'à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    myModel extends DefaultTableModel
    {
     
    public void setValueAt( int row, int col, Object value )
    {
    super.setValueAt( row, col, value ); --> pour effectivement prendre en compte le changement dans la cellule
     
    ../ --> ici, fais ce que tu veux avec ces données, par exemple sauvegarde dans un vecteur ou un tableau ...
    }
     
    }
    Et ta Jtable est créée de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myModel tonModel = new myModel();
    taTable = new JTable( tonModel  );

  3. #3
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    autre façon : écouter les événements sur la table

    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
    table.getModel().addTableModelListener(new MyTableModelListener(table));
     
        public class MyTableModelListener implements TableModelListener {
            JTable table;
     
            // It is necessary to keep the table since it is not possible
            // to determine the table from the event's source
            MyTableModelListener(JTable table) {
                this.table = table;
            }
     
            public void tableChanged(TableModelEvent e) {
                int firstRow = e.getFirstRow();
                int lastRow = e.getLastRow();
                int mColIndex = e.getColumn();
     
                switch (e.getType()) {
                  case TableModelEvent.INSERT:
                    // The inserted rows are in the range [firstRow, lastRow]
                    for (int r=firstRow; r<=lastRow; r++) {
                        // Row r was inserted
                    }
                    break;
                  case TableModelEvent.UPDATE:
                    if (firstRow == TableModelEvent.HEADER_ROW) {
                        if (mColIndex == TableModelEvent.ALL_COLUMNS) {
                            // A column was added
                        } else {
                            // Column mColIndex in header changed
                        }
                    } else {
                        // The rows in the range [firstRow, lastRow] changed
                        for (int r=firstRow; r<=lastRow; r++) {
                            // Row r was changed
     
                            if (mColIndex == TableModelEvent.ALL_COLUMNS) {
                                // All columns in the range of rows have changed
                            } else {
                                // Column mColIndex changed
                            }
                        }
                    }
                    break;
                  case TableModelEvent.DELETE:
                    // The rows in the range [firstRow, lastRow] changed
                    for (int r=firstRow; r<=lastRow; r++) {
                        // Row r was deleted
                    }
                    break;
                }
            }
        }

  4. #4
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 48
    Par défaut Ca marche
    Merci fnobb ton code fonctionne a merveille !
    Merci aussi a thomas_strass, mais en fait je n'est pas de TableModel ...
    j'affecte directement une nouvelle jTable que je charge a partir d'une requete sql ...
    Merci encore !

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

Discussions similaires

  1. Modification jTable /BDD
    Par armstrong dans le forum JDBC
    Réponses: 0
    Dernier message: 18/03/2010, 22h31
  2. Créer un evenement modification d'un text d'un textBox
    Par jeandadaf dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/12/2009, 18h47
  3. comment déclancher evenement sélection jtable
    Par saidgrd dans le forum Composants
    Réponses: 3
    Dernier message: 13/05/2008, 20h36
  4. Evenement sur JTable
    Par Nayila dans le forum Composants
    Réponses: 1
    Dernier message: 26/04/2008, 23h06
  5. [OpenOffice][Tableur] [macro] Evenements : modif d'une cellule dans calc
    Par Eruil dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 23/04/2007, 16h26

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