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

AWT/Swing Java Discussion :

JXTable, tri et selection


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Par défaut JXTable, tri et selection
    Bonjour,

    J'utilise pour un projet une JXTable construite à partir d'une classe étendue de AbstractTableModel.

    Tout fonctionne parfaitement, la création, l'affichage, le tri par colonne...

    Cependant, lorsque je trie une colonne, l'index de la rangée n'est pas modifié (ce qui semble logique en fait). Comment puis je faire alors pour savoir exactement sur quel ligne j'ai alors cliqué ?

    Exemple pour etre plus clair. Soit le modèle {téléphone, bic, souris}. Cela donne la colonne :

    téléphone
    bic
    souris

    Si je clique donc sur bic, j'aurai l'index 1. Ainsi en faisant monModele.getElementAtLine(1), j'aurai bien "bic"

    Si maintenant je trie cette colonne, j'obtiendrais ceci :

    bic
    souris
    téléphone

    Maintenant, si je clique sur bic, j'obtiendrai l'index 0. Et en faisant monModele.getElementAtLine(0), j'aurai "téléphone".

    Comment arranger cela ?

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    Voilà la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monModele.getValueAt(maTable.getRowSorter().convertRowIndexToModel(selectedRow), -1);
    dans ton cas : selectedRow = 0
    la fonction convertRowIndexToModel retourne l'index correspondant au modèle, cest à dire 1.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Par défaut
    Merci pour ton aide.

    Cependant, ca ne fonctionne toujours pas

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    JTableModelFDM mod = (JTableModelFDM) this.coursTable.getModel();
            int index = this.coursTable.getSelectedRow();
            RowSorter rs = this.coursTable.getRowSorter();
            System.out.println(rs.convertRowIndexToModel(index));
    Je m'attrappe un nullpointerException sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            System.out.println(rs.convertRowIndexToModel(index));
    Je ne comprend pas pq...

    (Note : JTableModelFDM extends AbstractTableModel)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Par défaut
    il semblerait que après ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RowSorter rs = this.coursTable.getRowSorter();
    rs soit null...

    D'où le probleme...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    As-tu une ligne qui ressemble à cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            coursTable.setAutoCreateRowSorter(true);

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Par défaut
    voila, avec cette ligne là, ca fonctionne impecable.

    Un tout grand merci

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

Discussions similaires

  1. tri par selection recursif
    Par valanscu77 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 06/11/2007, 17h58
  2. tri par selection
    Par houdabouayed dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 27/01/2007, 14h01
  3. Problème tri tutoriel selection multiple
    Par qbihlmaier dans le forum Access
    Réponses: 24
    Dernier message: 14/03/2006, 11h24
  4. TRI ET SELECTION DE CODE ALPHANUMERIQUE
    Par janpi34 dans le forum SQL
    Réponses: 2
    Dernier message: 07/05/2004, 18h41

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