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] Filtrage du contenu de la table


Sujet :

Composants Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 161
    Points : 48
    Points
    48
    Par défaut [JTable] Filtrage du contenu de la table
    Salut, je suis en train de développer une application java avec netbeans où j'utilise la bibliothèque Swing.
    J'ai un jTable avec les données de ma base. Je veux faire une recherche selon le critére nom, à chaque fois que l'utilisateur tape une lettre le tableau (jTable) diminue de taille, c'est à dire si je veux afficher que les enregistrements dont le nom est "Salma", quand l'utilisateur tape le premier caractére 'S' alors les lignes dont lla premiere lettre du nom est differente de 'S' disparaissent. Même travail pour les autres lettres ('a','l','m','a').
    Merci beaucoup.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 137
    Points : 88
    Points
    88

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 161
    Points : 48
    Points
    48
    Par défaut
    Salut
    En fait, j'ai réussi d'appliquer la recherche à mon application, j'ai utilisé une autre méthode.
    j'ai crée une nouvelle classe RechercheTableModel
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    public class RechercheTableModel extends AbstractTableModel {
     
        private int colnum=10;
        private int rownum;
        private String[] colNames={
       "codeclient",...."ville"
        };
        public  ArrayList<String[]> ResultSets;
        public  ArrayList<String[]> ResultSets1;
        int num;
     
        /** Creates a new instance of FoodTableModel */
        public RechercheTableModel(ResultSet rs,int a, String r ) 
        {
     
          ResultSets=new ArrayList<String[]>();  
          ResultSets1=new ArrayList<String[]>();
     
          try{ 
            while(rs.next()){
     
                  String[] row={
                  rs.getString("e_mail"), rs.getString("fax"),rs.getString("telephone1"),rs.getString("ville"),rs.getString("pays"),rs.getString("nomsociete"),rs.getString("nom"),rs.getString("prenom"),rs.getString("typeclient"),rs.getString("codeclient")
     
                };
     
     
                else
                      if(a==4)//Recherche selon le ville
                  {
                          if (row[3].startsWith(r))
                          {
                                    ResultSets.add(row);
                          }
     
                 } 
                 else
                      if(a==5)//Recherche selon le type du client
                  {
                          if (row[8].startsWith(r))
                          {
                                    ResultSets.add(row);
                          }
     
     
                      }
     
     
                         }   
          }
          catch(Exception e){
              System.out.println("Exception in RechercheTableModel");
                }
     
     
        }
     
        public Object getValueAt(int rowindex, int columnindex) {
     
           String[] row=ResultSets.get(rowindex);
           return row[columnindex];
     
        }
     
        public int getRowCount() {
            return ResultSets.size();
        }
     
        public int getColumnCount() {
            return colnum;
        }
     
        public String getColumnName(int param) {
     
           return colNames[param];
        }
     
     
    }
     
     
     
    et voici lecode de la méthode dans la classe ListeClient où il y a la jTable
    private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) { 
    if(jComboBox1.getSelectedItem().equals("Type client"))
        { 
        String enteredText = jTextField1.getText();
        ResultSet rs = getResultFromClient();
     
      if ( enteredText.equals(""))
        {  
          cltTable.setModel(new CarTableModel(rs));
     
        }
      else 
      {
            cltTable.setModel(new RechercheTableModel(rs,5,enteredText.toString()));
       }
        }
     
         if(jComboBox1.getSelectedItem().equals("اville"))
        { 
              String enteredText = jTextField1.getText();
              ResultSet rs = getResultFromClient();
     
      if ( enteredText.equals(""))
      {
          cltTable.setModel(CarTableModel(rs));
      }
      else 
      {
             cltTable.setModel(new RechercheTableModel(rs,4,enteredText.toString()));
     
     
      }
        }
    }

    Cette méthode me permet la recherche par caractére saisi dans un jTextField.
    Le problème maintenant, est que je dois faire la recherche multicritères , c'est à dire aprés le type du client il faut que la recherche par ville prend en considération le dernier model et non pas le model initial.
    Comment peut on resoudre?
    Merci d'avance

Discussions similaires

  1. Visualiser le contenu d'une table dans une JTable
    Par sasuke18 dans le forum NetBeans
    Réponses: 2
    Dernier message: 04/06/2012, 23h48
  2. Combo box et liste de valeurs contenues dans ma table
    Par TieumB dans le forum C++Builder
    Réponses: 14
    Dernier message: 05/04/2004, 18h47
  3. [MYSQL] Copier contenue d'une table vers...
    Par naseeb18 dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/04/2004, 13h40
  4. Lister le contenu d'une table sans connaitre ses champs
    Par Google.be dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 30/03/2004, 15h23
  5. [JTable]Aligner le contenu des cellules
    Par )3lade dans le forum Composants
    Réponses: 2
    Dernier message: 09/03/2004, 13h24

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