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 :

changer le type d'une colonne d'une JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 39
    Par défaut changer le type d'une colonne d'une JTable
    SVP ,
    comment je peux changer le type d'une colonne ?
    je veux changer une colonne de String en une colonne d'entiers pour que je puisse trier cette colonne d'entiers lorsque je clique sur elle.
    sachant que j'ai utilisé cette methode pour le tri
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maJTable.setAutoCreateRowSorter(true)
    il y a la methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.getColumnClass(int pos)
    pour connaitre le type de la colonne de position "pos",mais j'ai pas trouvé une methode comme par exemple "setColumnClass(int pos,classe ou le type préféré)"



    une solution SVP

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Salut,

    En créant ton propre model héritant de AbstractTableModel, tu peux alors redéfinir la méthode getColumnClass et renvoyer le type que tu veux en fonction du paramètre.
    Je pense que cela règlera ton problème.
    Voici un exemple de Sun. Un autre exemple.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 39
    Par défaut
    merci C'est réglé.
    puisque les données de la JTable sont par défaut des Objects ,donc lorsque vous utilisez la methode de tri automatique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setAutoCreateRowSorter(true);
    il va traiter chaque colonne comme étant des objects,donc pour les colonnes d'entiers le tri va etre faux.prenons un petit exemple d'une colonne d'entier de 4 enregistrements:
    {4,20,1,8} ==>apré le tri (croissant) elle va nous afficher {1,20,4,8}
    ce qui est évidement faux ,donc il nous faut changer le type de cette colonne en Integer.
    et comme VISIWI a dit ,il suffit de redéfinir la méthode getColumnClass et renvoyer le type que vous voulez en fonction du paramètre
    voilà un code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    JTable table=new JTable();
    
               table.setModel(new javax.swing.table.DefaultTableModel(datas,colName){
                   Class[] types = new Class [] {
                    java.lang.Integer.class, java.lang.String.class
                };
    
                public Class getColumnClass(int columnIndex) {
                    return types [columnIndex];
                }
    
                });
    
                 table.setAutoCreateRowSorter(true);
    ce code nous dit que la premiere colonne est de type entier et la 2eme de type chaine de caractere

Discussions similaires

  1. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Changer le type de plusieurs colonnes en une requete
    Par MinsK dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/02/2011, 14h15
  4. Réponses: 4
    Dernier message: 31/10/2007, 20h27
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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